从想法到一个可玩的 2D 游戏原型
先交付移动、收集与重开三个可检查的玩法,再衔接带源码的Godot、Cocos或Phaser完整实战。
练习范围:一分钟收集游戏
在一张固定场景里移动角色,收集5枚金币,60秒内收完获胜,超时失败。第一版只使用方块和圆形,不接账号、不做背包,也不加入随机任务。先写清初始状态、胜负条件、重新开始后哪些数据要归零。这个练习用于规划灰盒,完整引擎工程可从本文资料区进入三篇实战教程。
先独立验收输入与碰撞
让角色能向四个方向移动,并限制在屏幕内。再放一枚金币,碰到后计数加一且金币消失。连续停留在碰撞区不应反复加分。最后复制到五枚,检查角色移动速度是否受帧率影响,以及窗口改变尺寸后坐标是否合理。每一步运行通过后再让AI改下一项。
用状态机约束重开
至少区分ready、playing、won、lost四种状态。计时和收集只在playing生效,获胜后冻结计时并显示按钮。点击重开必须销毁旧金币、复位角色、清空得分和重置计时,不能只是遮住结束面板。连续重开十次,观察物体数与事件监听是否增长。
向AI提问时附上:引擎及版本、节点结构、完整报错、最小相关代码、预期与实际行为。
要求:只修复本次碰撞重复计分;说明修改位置;给出验证步骤;不要重写整个项目。交付与进阶入口
交付能运行的工程、操作说明、一次成功与一次失败的录屏,以及尚未解决的问题。Godot躲避游戏、Cocos点击游戏和Phaser接金币教程提供具体源码和步骤;选一个深入完成,不要同时切换三个引擎。美术替换应放在玩法稳定之后,替换时重复碰撞和重开检查。
配套工具与教程
动手实践
一个能移动、收集、结束并重新开始的单房间 2D 原型。
- 安装并能启动 Godot;先熟悉场景、节点和脚本的基本概念。
- 写下目标平台、输入方式和唯一核心玩法,第一版不加入联网和商业化系统。
- 准备可自行制作的简单几何图形;最终美术可以等玩法验证后再制作。
第 1 步
- 写一句玩法说明:玩家通过什么操作,达成什么目标。
- 列出角色、收集物、边界和结束提示四类对象,分别写出行为。
- 把成功条件拆成可以人工检查的清单,并明确哪些功能暂不做。
其他人读完说明,能够说清如何开始、如何获胜和如何重开。
第 2 步
- 建立独立玩家场景,用简单形状表示角色与障碍。
- 先实现移动和边界,再加入收集计数及结束状态;每增加一项就运行验证。
- 向代码助手提供引擎版本、相关脚本和完整错误信息;只合并理解且能运行的改动。
不用最终美术,也能完整走通开始、游玩、结束和重开。
第 3 步
- 为玩家、收集物和背景分别写尺寸、用途、透明背景和风格要求。
- 先替换一个资产,检查识别性和比例,再批量制作。
- 把下载来源、生成设置和使用条件写入资产清单,按用途命名文件。
美术替换后操作反馈仍然清晰,素材来源可以追溯。
第 4 步
- 检查角色贴图与碰撞区域是否一致,实际测试边缘和同时按键。
- 导出到目标系统;从导出包启动,而不是只在编辑器里运行。
- 请别人按操作说明试玩,记录卡住的位置,并保留已知问题列表。
导出包可独立启动,重开不会重复计分或残留上一局对象。
常见问题
AI 代码与引擎版本不匹配
先记录项目版本,给出原始报错和最小脚本,逐项核对官方 API;不要整段反复替换工程。
画面完整但玩法无法结束
回到灰盒版本,先验证状态与计数,再逐个恢复资产。
编辑器正常,导出包缺资源
检查导出设置、资源引用和大小写路径,在干净目录重新测试导出包。
交付成果
- 可打开的游戏工程及引擎版本说明
- 可运行的导出包与操作说明
- 美术/声音来源清单
- 正常流程、失败重开、边界碰撞的测试记录