OK,OK,大家好,欢迎大家来到大鹏 AI 教育,我是张大鹏。
这是我用 Godot 完成的第一个小游戏。它没有复杂的美术资源,也没有庞大的关卡系统,只有一条会移动、会成长、会撞墙的蛇。但对零基础学习来说,这个项目很合适:输入、状态、碰撞、绘制和游戏循环都能在一个小场景里看清楚。
更重要的是,我不只想让 AI 帮我"写出代码"。我希望它能自己启动项目、看到游戏画面、发现问题、留下证据,再把过程整理成以后还能读懂的文章和素材。
先把最小游戏循环做完整
贪吃蛇的核心逻辑放在 learning_projects/snake_game/scripts/snake_game.gd。初始蛇有四节,方向键和 WASD 都能控制移动。蛇头碰到食物后,分数增加,身体保留一节;碰到墙或自己时,游戏进入结束状态。
第一张图是确定性开始镜头。蛇、食物和得分都来自仓库内的镜头配置,不依赖随机运行碰巧得到同一个画面。

AI 真正看到了"吃到食物"
最初的镜头配置把蛇头放在食物左侧,然后在采集前执行一步移动。这样得到的不是一张随便截下来的游戏图,而是一张可以反复复现的"吃到食物"证据图:蛇从四节变成五节,得分从 00 变成 01。

这一步让我理解了一个很实用的原则:如果画面要用于教程和回归验证,就不要把希望寄托在随机操作上。镜头应该明确描述蛇身、食物、方向、分数和游戏状态,采集工具只负责忠实渲染。
真实画面比"代码看起来没问题"更重要
开发过程中出现过两个只有看图才能确认的问题。
- 🧭 一开始为了冻结状态,我把镜头设成暂停,结果截图中央出现了"已暂停"遮罩。后来把冻结逻辑和游戏暂停分开,镜头才恢复干净。
- 🔤 开始镜头只预热一帧时,字体缓存还没有稳定,标题缺失、分数位置异常。把预热提高到十帧后,重新采集才得到完整画面。
如果只检查脚本,这两个问题都很容易被漏掉。现在项目规则已经明确:AI 修改场景、界面或视觉代码后,必须重新采集并检查实际画面。
完整循环终于闭合
最后一张图展示游戏结束遮罩和重新开始提示。到这里,开始、成长、得分、失败、重开这些最小环节都已经存在。

每张正式图片旁边都有 manifest,记录对应镜头、Git 状态、Godot 版本、渲染参数、文件摘要和母版关系。以后其他 AI 看到文章时,不必相信一句"我已经验证过",它可以沿着项目里的证据继续检查。
这次我真正学到什么
- 🎮 Godot 的游戏循环不是抽象概念,它就是输入、更新状态和重新绘制的连续过程。
- 🧪 能运行不等于画面正确,截图和视觉验收是开发的一部分。
- 📸 可复现镜头比随机截图更适合教程、博客和回归检查。
- 🤝 AI 最有价值的地方,不只是生成代码,而是把实现、验证、素材和复盘连接成一条工作流。
这个贪吃蛇仍然很简单,但它已经成为整个 RuyiGodotAI 内容流水线的第一个真实样本。下一步,我会继续用它学习场景组织、音效、动画和更完整的游戏交互。