展开本页目录
开始前准备什么
- 下载练习包,先阅读 README 中的依赖和运行范围。
- 使用独立练习目录;starter 是待完成任务,reference 是作者参考实现。
- 账号型功能须在自己的授权环境执行;本题不要求提供真实凭据。
- 建立真实节点
- 配置层与遮罩
- 发送原生输入
- 观察墙前停止
- 制造遮罩负例
- 保存物理与像素
- 检查独立运行
1. 建立真实节点
项目包含CharacterBody2D角色和StaticBody2D墙,形状分别40×40与30×230。可见色块与CollisionShape不是同一对象。
2. 配置层与遮罩
角色layer=2/mask=1,墙layer=1。先画出预期关系,再核对实际属性,不把视觉重叠当作有碰撞。
本题本地命令
Godot --path project
# 项目会自动完成两次原生物理对照并退出3. 发送原生输入
作者用Input.action_press("ui_right")驱动物理进程,是引擎内事件模拟,不宣称真人按键或手柄已经测试。
4. 观察墙前停止
持续90个physics tick,记录角色x。正例角色止于墙左边,截图来自真实Godot渲染而不是浏览器模拟游戏。
5. 制造遮罩负例
只将角色collision_mask改0并复位位置,保持同样墙和视觉节点。相同输入会穿过墙,说明碰撞合同确实影响结果。
6. 保存物理与像素
回读physics.json的mask/x/blocked,再对照两张原生PNG。渲染截图漂亮不等于碰撞逻辑已通过。
7. 检查独立运行
移交project.godot、tscn与GDScript,重新打开应自动完成两组。缓存.godot不进入练习包,真实设备输入可由读者另测。
怎样确认已经完成
- 错误层导致穿透可复现
- 修后真实物理接触成立
- 区分headless脚本与GUI实际按键
- 已运行Godot 4.7.2真实OpenGL场景、原生物理与Input.action_press:mask=1止于墙前、mask=0穿墙,保存实际渲染截图;未测真实键盘/手柄或Agent模型。
常见问题
CLI-Anything 能让 AI 做出真正能运行的 Godot 小场景吗?
先区分可见节点与CollisionShape,再核对角色mask是否包含墙所在layer。本题保持视觉相同,仅改mask即可真实复现穿墙。
AI 生成的碰撞层配置为什么会让角色穿过地面?
记录原生物理位置和碰撞结果,再看截图。本文使用Input.action_press自动输入,不代表真实键盘、手柄或所有帧率已经覆盖。
哪些功能已经实际执行?
已运行Godot 4.7.2真实OpenGL场景、原生物理与Input.action_press:mask=1止于墙前、mask=0穿墙,保存实际渲染截图;未测真实键盘/手柄或Agent模型。



