疯狂输出:这是2026年第 5 篇文章。
当前文档主要记录 AI 辅助小游戏开发的操作。基于 codebuddy + cocos-mcp-server +spec-kit (grill-me)+ 美术资源skill 工具进行小游戏开发。
以下是【飞行射击游戏】的例子,介绍每个开发步骤和 AI 工具的使用。
Cocos Dashboard 创建项目 SkyShooter
项目中配置 cocos-mcp-server 插件
打开项目手动增加 extensions 文件夹,然后将 cocos-mcp-server 文件直接复制到该文件下。
安装完之后可以直接进入 extensions/cocos-mcp-server/ 下执行命令:
npm installnpm run build[截图占位: image.png]
项目中配置完 cocos-mcp-server 插件后就可以打开 cocos creator 扩展管理器看到安装好的插件,显示开启说明可以使用。
打开:扩展>> 扩展管理器>> 已安装扩展---> “打开开关”。
[截图占位: image.png]
启动 cocos-mcp-server 服务
打开:扩展>> Cocos MCP Server >> 打开 MCP 面板--> 启动服务器 (端口可修改)。
[截图占位: image.png]
codebuddy 中配置 cocos-mcp-server 连接
mcp 配置内容,配置完保存显示“绿色”,说明连接成功。
{
"mcpServers": {
"cocos-creator": {
"url": "[敏感信息00004]"
}
}
}[截图占位: image.png]
Cocos Creator 启动后,你会看到以下主要面板:
面板 | 位置 | 作用 |
|---|---|---|
层级管理器(Hierarchy) | 左上 | 场景中所有节点的树状结构 |
资源管理器(Assets) | 左下 | 项目所有资源(脚本、图片、预制体等) |
场景编辑器(Scene) | 中央 | 可拖拽编辑的可视化场景 |
属性检查器(Inspector) | 右侧 | 选中节点的属性配置 |
控制台(Console) | 底部 | 错误日志和 `console.log` 输出 |
PlayerController.ts 拖到玩家节点上,这个节点就有了"能响应键盘控制移动"的能力。用前端类比理解:
Node ≈ <div> 元素
Component ≈ 你写在 <script> 里的 Vue/React 组件逻辑
Prefab ≈ 一个可复用的 Vue/React 组件文件随便一个 AI 工具直接告诉它:“我要做一个基于 cocos creator 3.8.8 引擎的飞行射击小游戏,帮我完成设计方案”。AI 都会给你生成很完整的方案。我主要使用 grill-me 。因为这个 skill 它能够在完成工作前使用交互方式,先询问相关设计的意图和约束再生成最终方案。
[截图占位: image.png]
[截图占位: image.png]
使用SKILL:grill-me。安装方式和使用方法可参考:[[敏感信息00008]]([敏感信息00008])
grill-me 使用教程:
安装:
执行 npx skills@latest add mattpocock/skills
勾选 grill-me、to-prd 和 setup-matt-pocock-skills (其他 skill 会依赖 setup 这个skill )
使用 :在 Codebuddy 对话里输入 /grill-me+要做的事情。
流程:
/grill-me 你描述一个想做的事,可以很模糊(「我想给博客加个登录功能」)
Codebuddy 开始一题一题问,每题都给推荐答案
你逐题回答(点头 / 否 / 改)
一般 20~50 个问题之后达成共识,Codebuddy 给你一个总结
总结可以直接喂给 /to-prd 变成 PRD,或者直接交给 /tdd 开始写打开 CodeBuddy,输入以下 prompt。注意这次的 prompt 已经包含了 MCP 操作指令——AI 会同时帮你创建代码文件和操作编辑器。
我正在用 Cocos Creator 3.8.8 开发一个竖屏飞行射击游戏。
请在 assets 目录下帮我创建以下子目录结构:
assets/
├── scenes/ -- 存放场景文件
├── scripts/ -- 存放所有 TS 脚本
│ ├── player/ -- 玩家相关脚本
│ ├── enemy/ -- 敌机相关脚本
│ ├── bullet/ -- 子弹相关脚本
│ ├── item/ -- 道具相关脚本
│ ├── ui/ -- UI 相关脚本
│ └── manager/ -- 管理器脚本(游戏流程、关卡等)
├── prefabs/ -- 存放预制体
├── textures/ -- 存放图片资源
├── sounds/ -- 存放音效资源
└── animations/ -- 存放动画资源直接通过自然语言方式告诉ai 处理工作:
通过 MCP 的 cocos-creator 工具创建一个新场景 GameMain.scene定义好项目规则可以防止AI 跑偏或自主扩展。项目规则相当于一份“开机说明”
开发规范
- 场景节点等增删改查能通过 MCP 方式都使用MCP操作,涉及业务逻辑的处理直接操作ts。
- 如果无法使用 MCP 完成的都要提示出来
引擎规范
- 引擎:Cocos Creator 3.8.8,TypeScript 严格模式
- 分辨率:720×1280 竖屏,物理引擎 Box2D 2D
## MCP 操作规范
### 前置检查(每次开发前必须执行)
1. 确认 Cocos Creator 编辑器已打开且加载了项目
2. 调用 `server_check_server_connectivity` 验证 cocos-server MCP Extension 连接状态(默认 localhost:3835)
3. 如果连接失败:停止并提示用户检查编辑器状态,不继续执行
### 工具名速查
| 用途 | MCP 工具名 |
|---|---|
| 验证服务器连接 | `server_check_server_connectivity` |
| 获取当前场景 | `scene_get_current_scene` |
| 获取场景层级 | `scene_get_scene_hierarchy` |
| 查询资产列表 | `project_get_assets` |
| 查询资产详情 | `project_get_asset_info` |
| 导入资产 | `project_import_asset` |
| 创建节点 | `node_create_node` |
| 删除节点 | `node_delete_node` |
| 查找节点 | `node_find_node_by_name` |
| 设置节点属性 | `node_set_node_property` |
| 设置节点变换 | `node_set_node_transform` |
| 移动节点 | `node_move_node` |
| 复制节点 | `node_duplicate_node` |
| 获取节点信息 | `node_get_node_info` |
| 添加组件 | `component_add_component` |
| 挂载脚本 | `component_attach_script` |
| 设置组件属性 | `component_set_component_property` |
| 获取组件列表 | `component_get_components` |
| 保存场景 | `scene_save_scene` |
| 打开场景 | `scene_open_scene` |
| 获取控制台日志 | `debug_get_console_logs` |
| 创建资产 | `project_create_asset` |
| 创建预制体 | `prefab_create_prefab` |
| 实例化预制体 | `prefab_instantiate_prefab` |
### 每个模块的标准操作顺序
1. `scene_get_current_scene` → 确认当前场景正确
2. `project_get_assets` → 确认所需纹理/预制体已存在
3. 业务脚本:直接编写 .ts 文件 → 等待人工确认代码无误
4. `debug_get_console_logs` → 检查 TypeScript 编译结果,确认无编译错误
5. `node_create_node` → 创建场景节点(无批量创建,逐个创建)
6. `node_set_node_property` / `component_add_component` / `component_attach_script` → 设置位置、尺寸、组件引用
7. `scene_save_scene` → 保存场景
8. 输出变更清单,等待"继续"指令
### 异常处理规范
- 编译错误:调用 `debug_get_console_logs` → 分析错误 → 修复 → 不跳过不假装成功
- 节点路径错误:先 `scene_get_scene_hierarchy` 确认层级,再重试
- 资源缺失:先 `project_import_asset` 导入资源,再继续
### 禁止行为
- 禁止一次性生成多个节点/组件/预制体的代码
- 禁止跳过 `scene_save_scene`在方案确认后,也要同时确认美术资源的风格和规格。一定要注意这个规格大小,避免开发时替换美术资源时发生对应不上的问题。
可使用 SKILL:game-ui-generator ([https:[敏感信息00001]](https:[敏感信息00001]))
使用方式(3步)
resource_{name}_{timestamp}/,直接拖入引擎注意:AI 无法生成真透明的背景图,所以可以使用脚本处理或者工具: [https:[敏感信息00002]](https:[敏感信息00002]) 背景透明处理。
在以往的传统教程中,你需要先在编辑器中手动创建 Sprite 节点、调整位置,再拖脚本到节点上。有了 MCP,这一切只需要一句话。(以上相关prompt 都是 AI 生成)
请通过 MCP 完成以下操作:
1. 确认 GameMain 场景已打开(scene_management action=open name=GameMain)
2. 创建 Player 节点(node_lifecycle action=create name=Player nodeType=2DNode,components 包含 cc.Sprite 和 cc.UITransform)
3. 设置 Player 节点属性(node_transform action=modify):
- position: (0, -500, 0) -- 屏幕中下方
- scale: (1, 1, 1)
4. 设置 Sprite 组件的属性(set_component_property):
- color: 白色 (255, 255, 255, 255)
- 当前先用白色方块占位,后续替换为飞机图片
5. 创建并写入脚本文件 assets/scripts/player/PlayerMovement.ts,内容要求:
- 支持触摸拖动(移动端)和键盘方向键/WASD(PC 端)
- 飞机只能在地图范围内移动,边界:左右 ±360,上下 ±640
- 移动速度 500 px/s,使用 update(dt) 更新位置
- 导入:import { _decorator, Component, Node, input, Input, EventTouch, KeyCode, EventKeyboard, Vec3 } from 'cc';
- 修改位置请用 this.node.setPosition()
6. 通过 MCP 将 PlayerMovement 脚本挂载到 Player 节点(component_script action=attach scriptName=PlayerMovement)
7. 保存场景确认飞机可以移动后,让 AI 一次性完成:合并脚本 + 添加射击功能 + 更新节点 + 运行。
请帮我在 Cocos Creator 3.8.8 中完成以下操作:
1. 将 PlayerMovement.ts 升级为 PlayerController.ts(放在 scripts/player/),合并移动和射击功能:
- 保留原有的触摸/键盘移动 + 边界限制
- 新增:按下空格键以 0.3 秒间隔发射子弹
- 子弹是动态创建的 Sprite 节点(尺寸 10x20,白色),从玩家位置向上飞行,速度 800 px/s
- 子弹移出画面(y > 700)后自动销毁
- import { _decorator, Component, Node, input, Input, KeyCode, EventTouch, Vec3, Sprite, Color, UITransform } from 'cc';
2. 通过 MCP 更新 Player 节点:
- 先移除旧的 PlayerMovement 脚本
- 再挂载新的 PlayerController 脚本
3. 保存场景后运行项目
请使用 Cocos Creator 3.8 的 API,不要使用任何 2.x 版本的 API。请帮我在 Cocos Creator 3.8.8 中完成敌机系统的搭建:
一、通过 MCP 操作编辑器:
1. 创建空节点 EnemySpawner(node_lifecycle action=create name=EnemySpawner nodeType=2DNode)
2. 设置 position 为 (0, 0, 0)
3. 创建空节点 EnemyContainer(node_lifecycle action=create name=EnemyContainer)作为敌机父节点
- 用于在本节点下集中管理所有生成的敌机
二、创建脚本文件:
1. 写入 assets/scripts/enemy/EnemyMovement.ts,要求:
- 三种行为模式:straight(直线向下)、zigzag(正弦波摇摆)、chase(追踪玩家)
- 速度 200-400 px/s,behaviorType 可配置
- 移出屏幕(y < -700)自动销毁
- hp 属性(默认 1),takeDamage(damage: number) 方法,血量归零时销毁
- import { _decorator, Component, Node, Vec3, find } from 'cc';
2. 写入 assets/scripts/enemy/EnemySpawner.ts,要求:
- 每隔 2 秒在屏幕顶部(x: -320~320, y: 640)随机生成敌机
- 敌机是红色 Sprite 方块(30x30),挂载 EnemyMovement
- 前 10 秒随机分配 straight 或 zigzag,10 秒后加入 chase 类型
- 生成到 EnemyContainer 节点下作为子节点
- 提供 stopSpawn() 方法
- import { _decorator, Component, Node, Sprite, Color, UITransform, Vec3 } from 'cc';
三、通过 MCP 挂载脚本:
3. 将 EnemySpawner.ts 挂载到 EnemySpawner 节点(component_script action=attach)
4. 保存场景并运行(project_manage action=run)
请使用 Cocos Creator 3.8 的 API,不要使用任何 2.x 版本的 API。Cocos 3.8 使用 2D 物理碰撞(Box2D)。首先需要启用 2D 物理模块。
启用 2D 物理模块:如果 MCP 无法自动完成此设置,手动操作一次即可: 菜单栏 → 项目 → 项目设置 → 功能裁剪 → 勾选「2D 物理系统」(Physics 2D)。
我需要在 Cocos Creator 3.8.8 中实现飞行射击游戏的碰撞检测。请完成以下所有操作:
一、通过 MCP 创建节点并挂载脚本:
1. 创建空节点 PhysicsManager(node_lifecycle action=create name=PhysicsManager nodeType=2DNode)
二、创建脚本文件:
1. 写入 assets/scripts/manager/PhysicsInit.ts,在 onLoad 中:
- PhysicsSystem2D.instance.enable = true
- 定义碰撞组(2 的幂):
PLAYER = 2, PLAYER_BULLET = 4, ENEMY = 8, ENEMY_BULLET = 16, POWERUP = 32
- 配置碰撞矩阵:玩家子弹↔敌机、玩家↔敌机、玩家↔道具
- import { _decorator, Component, PhysicsSystem2D } from 'cc';
2. 写入 assets/scripts/enemy/CollisionHandler.ts:
- onLoad 中获取 Collider2D,监听 Contact2DType.BEGIN_CONTACT
- onBeginContact 根据碰撞对象的分组执行不同逻辑
- import { _decorator, Component, Collider2D, Contact2DType, IPhysics2DContact } from 'cc';
三、通过 MCP 更新现有节点,添加碰撞体:
3. 为 Player 节点添加 BoxCollider2D + RigidBody2D(type=Kinematic)
- component_manage action=add componentType=cc.BoxCollider2D
- component_manage action=add componentType=cc.RigidBody2D
- set_component_property:BoxCollider2D group=2(PLAYER),sensor=true,size=(40,40)
四、更新现有脚本(生成子弹/敌机时添加碰撞体):
4. 更新 PlayerController.ts:创建子弹时添加 BoxCollider2D(group=4, sensor=true, size=10x20)+ RigidBody2D(Kinematic)
5. 更新 EnemySpawner.ts:创建敌机时添加 BoxCollider2D(group=8, sensor=true, size=30x30)+ RigidBody2D(Kinematic)
6. 敌机节点也挂载 CollisionHandler 脚本
五、挂载并运行:
7. MCP 挂载 PhysicsInit 到 PhysicsManager 节点(component_script action=attach)
8. 保存场景,运行项目(project_manage action=run)
请使用 Cocos Creator 3.8 的 API,不要使用任何 2.x 版本的 API。相关UI图片资源都在 /textures/目录下请直接使用。发生问题,直接告诉自然语言告诉AI去修改即可。
RigidBody2D 的 gravityScale 默认为 1,即使 Kinematic 类型在某些情况下也会受重力影响。需要将所有 RigidBody2D 的 gravityScale 设为 0道具 | 效果 | 持续时间 |
|---|---|---|
火力升级 (PowerUp) | 子弹变为三连发 | 永久(被击中后降级) |
全屏炸弹 (Bomb) | 清除屏幕所有敌机 | 立即生效 |
护盾 (Shield) | 抵挡一次伤害 | 永久(被击中后消失) |
回血heal | 恢复血量 | 立即生效 |
我需要为 Cocos Creator 3.8.8 的飞行射击游戏写道具系统脚本。
要求:
1. 脚本名:PowerUpSpawner.ts,放在 scripts/item/ 下
2. 每 15 秒随机生成一种道具,从屏幕顶部掉落(x 随机,y=640,速度 150)
3. 道具掉落时左右轻微晃动增加拾取难度
4. 4 种道具类型:
- powerUp:三连发(powerup_weapon.png,25x25)
- bomb:全屏清敌(powerup_bomb.png,25x25)
- shield:护盾(powerup_shield.png,25x25)
- heal:回血(poweru_heal.png,,25x25)
5. 移到屏幕外自动销毁
6. 道具使用固定枚举类型 ItemType = POWERUP | BOMB | SHIELD | heal
7. 使用 import { _decorator, Component, Node, Sprite, Color, UITransform, Vec3, Collider2D, RigidBody2D } from 'cc';
请输出完整的 PowerUpSpawner.ts。我需要更新 PlayerController.ts,增加道具拾取逻辑。
要求:
1. 添加属性:
- powerLevel: number (火力等级,初始 1,最高 3)
- hasShield: boolean (是否有护盾,默认 false)
- bombCount: number (炸弹数量)
- live:number(血量,满血:100)
2. 拾取 powerUp 时,powerLevel +1,射击模式变为发射 powerLevel 发子弹(扇形展开)
3. 拾取 bomb 时,调用一个方法清除所有敌机节点
4. 拾取 shield 时,hasShield = true,下次被敌机碰撞时消耗护盾而不是死亡
5. 拾取 heal 时,血量恢复满血
5. 当玩家被击中时:
- 如果有护盾,消耗护盾
- 否则 powerLevel -1,血量live-10
- 如果 powerLevel < 1,玩家死亡,或者血量live<=0 时,玩家死亡
6. 使用 import { _decorator, Component, Node, ... } from 'cc';
请输出更新后的 PlayerController.ts 完整代码。请帮我在 Cocos Creator 3.8.8 中搭建完整的 UI 系统:
一、通过 MCP 创建 Canvas 和 UI 子节点:
1. 如果场景中没有 Canvas 节点,创建 Canvas(node_lifecycle action=create name=Canvas nodeType=2DNode,components 包含 cc.Canvas)
2. 在 Canvas 下创建以下子节点(每个都用 node_lifecycle action=create,parentUuid 设为 Canvas 的 UUID):
- ScoreLabel(cc.Label 组件,左上角 position: (-500, 300))
- LifeLabel(cc.Label 组件,右上角 position: (500, 300))
- BombButton(cc.Button + cc.Label 组件,右下角 position: (400, -280))
- GameOverPanel(空节点,初始 active=false)
└── GameOverLabel(cc.Label,显示"游戏结束")
└── RestartButton(cc.Label,显示"重新开始")
3. 设置 Label 初始文本(set_component_property):
- ScoreLabel.string = "分数:0"
- LifeLabel.string = "❤ x 3"
- BombButton 的 Label.string = "💣 炸弹"
二、创建 UIManager.ts 脚本(assets/scripts/ui/),要求:
- 单例模式(static instance)
- 方法:updateScore / updateLife / updatePowerLevel / updateBombCount / showGameOver
- BombButton 点击事件:消耗炸弹,通知清除所有敌机
- Game Over 延迟 2 秒显示面板
- import { _decorator, Component, Label, Button, Node } from 'cc';
- Label 使用 .string 属性,不是 .text
三、更新 EnemyMovement.ts:
- takeDamage 中 hp 归零时调用 UIManager.instance.updateScore() 加 100 分
四、挂载 + 运行:
4. MCP 挂载 UIManager 到 Canvas 节点(component_script action=attach scriptName=UIManager)
5. 保存场景并运行(project_manage action=run)
请使用 Cocos Creator 3.8 API。请为我的 Cocos Creator 3.8.8 飞行射击游戏添加关卡系统和 Boss:
一、通过 MCP 创建节点:
1. 创建空节点 LevelManager(node_lifecycle action=create name=LevelManager nodeType=2DNode)
二、写入脚本:
1. assets/scripts/manager/LevelManager.ts:
- 单例模式,管理 3 关:每关消灭 20/30/40 架敌机触发 Boss
- 各关敌机速度递增(2s → 1.5s → 1s 间隔)
- 击杀达标 → 暂停 EnemySpawner → 触发 Boss 生成
- Boss 击败 → 显示"第X关通过" → 3 秒后下一关
- import { _decorator, Component, Node } from 'cc';
2. assets/scripts/enemy/BossBehavior.ts:
- 从顶部下降到 y=400,然后左右移动(x: -250~250)
- 每 1.5s 扇形发射 3 发子弹
- 有 HP 显示(可用 Label 显示血量数字)
- HP 归零时闪烁动画后销毁,通知 LevelManager
- hp 属性可在 Inspector 设置(关卡数 × 5)
- import { _decorator, Component, Node, Vec3, Label, tween } from 'cc';
三、挂载并运行:
3. MCP 挂载 LevelManager 到 LevelManager 节点(component_script action=attach)
4. 保存场景并运行(project_manage action=run)
请使用 Cocos Creator 3.8 API。我需要为 Cocos Creator 3.8.8 的飞行射击游戏写背景滚动脚本。
要求:
1. 脚本名:ScrollingBackground.ts,放在 scripts/ 下
2. 实现无限循环的向下滚动效果(模拟飞机向前飞行)
3. 使用两张相同的背景图,首尾相连循环
4. 滚动速度可配置(默认 100 px/s)
5. 背景图片先用一个纯色 Sprite(深蓝到黑的渐变更好)占位
6. 使用 import { _decorator, Component, Node, Sprite, UITransform, Vec3 } from 'cc'; 请输出完整的 ScrollingBackground.ts。错误 | 修正方法 |
|---|---|
`cc.ParticleSystem` | 告诉 AI:"3.8 中的粒子系统是 `ParticleSystem2D`,或使用 3D 的 `ParticleSystem` 需挂载到 3D 节点。飞行射击建议用 tween 做简单效果" |
我需要为 Cocos Creator 3.8.8 的飞行射击游戏写音效管理器。
要求:
1. 脚本名:AudioManager.ts,放在 scripts/manager/ 下,单例模式
2. 提供音效播放方法: - playShoot():射击音效 - playExplosion():敌机爆炸音效 - playPowerUp():道具拾取音效 - playBossWarning():Boss 出现警告音效 - playGameOver():游戏结束音效 - playBGM():背景音乐循环播放
3. 使用 AudioSource 组件播放
4. 如果音频文件不存在,先用空方法占位,不报错
5. 提供一个静音开关
6. 使用 import { _decorator, Component, AudioSource, AudioClip, resources } from 'cc'; 请输出完整的 AudioManager.ts。流程:需求分析 --> 设计方案 → 拆解任务 → 开发--> 人工验收测试---> 反馈问题--->bug修复/继续开发
需求分析:使用 skill:grill-me ([[敏感信息00008]]([敏感信息00008]))
我正在用 Cocos Creator 3.8.8 开发一个竖屏飞行射击游戏。
请在 assets 目录下帮我创建以下子目录结构:
assets/
├── scenes/ -- 存放场景文件
├── scripts/ -- 存放所有 TS 脚本
│ ├── player/ -- 玩家相关脚本
│ ├── enemy/ -- 敌机相关脚本
│ ├── bullet/ -- 子弹相关脚本
│ ├── item/ -- 道具相关脚本
│ ├── ui/ -- UI 相关脚本
│ └── manager/ -- 管理器脚本(游戏流程、关卡等)
├── prefabs/ -- 存放预制体
├── textures/ -- 存放图片资源
├── sounds/ -- 存放音效资源
└── animations/ -- 存放动画资源
请帮我写一个脚本自动创建这些目录,或者告诉我手动创建的操作路径。任务拆解:open-kit 工具拆解任务,生成响应的prompt
美术资源:使用 skill 生成美术资源
当你遇到问题不知道怎么描述时,直接用这个模板,也可以在项目规则中增加如何排查问题规则:
我在 Cocos Creator 3.8.8 中开发飞行射击游戏时遇到问题:
[描述现象:比如"敌机被子弹击中后,碰撞回调没有触发"]
控制台报错信息:
[粘贴控制台的红色报错]
请帮我:
1. 定位问题原因
2. 给出修复后的代码
3. 说明 Cocos 3.8 中正确的 API 用法整体实践下来感想:
一个重要体验感想:AI 能算出相关数值,但是无法算出游戏“好不好玩”。AI 无法感知游戏过程中打击boss紧张感,护盾等buff叠加的爽感。这部分细节需要人工来判断和调整。
AI 能做的是辅助游戏开发无法完全生产游戏。AI 更擅长做逻辑简单的游戏,如卡牌类游戏。但对于需要物理引擎和骨骼动画,3D等相关的复杂场景 AI 实现都不太理想。
MCP 类别 | 能做什么 | 示例工具 |
|---|---|---|
`scene_*` | 创建/打开/保存场景、运行游戏 | `scene_management`、`scene_hierarchy` |
`node_*` | 创建/删除/移动/查找节点 | `node_lifecycle`、`node_transform`、`node_query` |
`component_*` | 添加/移除/查询组件、挂载脚本 | `component_manage`、`component_script`、`set_component_property` |
`prefab_*` | 创建/编辑/实例化预制体 | `prefab_lifecycle`、`prefab_instance` |
`asset_*` | 导入/删除/查询/复制资源 | `asset_manage`、`asset_operations`、`asset_query` |
`project_*` | 运行/构建项目 | `project_manage`、`project_build_system` |
`debug_*` | 获取/清除控制台日志 | `debug_console` |