第5天。又是一款经典街机游戏。这次我想看看让AI做Breakout会有什么结果。
提示词#
“我想创建一款Breakout/Arkanoid风格的街机游戏,包含多个关卡、道具、连击计分和流畅的物理效果”
比我之前的一些提示词稍微具体一些。到第5天,我意识到提前对想要的功能稍加说明,可以省去之后提交大量bug报告的麻烦。
构建过程#
这次我再次使用了Watchfire。从package.json就能看出来,它会自动以watchfire-0000前缀命名。我给了它提示词,剩下的它全部搞定了。整个游戏存在于一个单独的React组件中,外包一个HTML5 Canvas,这是我在这些日常构建中看到过几次的模式。架构不是最干净的,但它能用,而且能上线。
技术栈是Next.js、TypeScript和Tailwind CSS。游戏渲染全部基于Canvas,React负责处理菜单和暂停界面的覆盖层UI。
最终效果#
一个完全可玩的Breakout克隆版,比我预期的打磨程度高得多。

五个关卡,各有独特图案。“开始之旅"是标准的完整网格。“菱形阵型"将砖块排列成菱形。“要塞"建造带缺口的墙壁。“波浪"交替排列行。“最终挑战"是密集的分层图案。每个关卡都会提升球速倍率,从1.0x一路增加到1.5x。

**道具真的很有用。**四种道具会从打碎的砖块中掉落:宽挡板(10秒)、慢球(8秒)、多球(分裂成多个球,直到全部丢失)和额外生命(即时生效)。特殊的"超级"砖块掉落道具的概率是普通砖块的两倍。道具以发光球体的形式向下飘落,用挡板接住即可。

**连击系统增加了深度。**连续击中砖块可累积分数倍率,最高达3倍。如果2秒内没有击中砖块,连击就会消退,因此游戏鼓励你让球快速移动并连续击中砖块。这是个小细节,但它会改变你的打法。

**视觉特效随处可见。**砖块破碎时有粒子爆炸效果。球有轨迹特效。特定击中时屏幕会震动。闪光效果。星空闪烁背景。砖块采用霓虹渐变配色方案,包含亮粉色、橙色、黄色、绿色和青色行。这些对于Breakout游戏来说并非必需,但整体感觉更有生命力。

**三种砖块类型。**普通砖块一击即破。坚固砖块需要多次击打(有可见的HP指示器)。超级砖块更为坚韧,且有更高的道具掉落概率。关卡图案混合了这些类型,创造出不同的挑战。
Bug报告#
说实话,这次相当干净。从一开始物理效果就感觉对,挡板移动在鼠标和键盘操作下都很流畅,关卡也能正确加载。这次构建没有需要报告的重大bug。
数据统计#
- 5个关卡,独特砖块图案,难度递增
- 4种道具类型,各有计时时长
- 约2300行TypeScript代码,全在单个游戏组件中
- 3种砖块类型(普通、坚固、超级)
- **3种操控方式:**键盘、鼠标和触摸
试玩#
用鼠标或方向键移动挡板。空格键或点击发射球。P键或Escape键暂停。
第5天总结#
五天过去了,我注意到了一个规律。这些基于Canvas的游戏是AI辅助编程的甜蜜点。范围清晰,规则明确,有一种即时的测试方式来验证它是否有效:直接玩就知道了。
让我惊讶的是粒子系统和视觉打磨程度。我没有要求屏幕震动、球轨迹或星空背景。AI自己决定这些东西会让游戏感觉更好,而且它是对的。连击系统也是个不错的设计。它把一个简单的"弹球、打砖块"游戏变成了让你真正思考角度和时机的东西。
它能和真正的Arkanoid竞争吗?不能。但它是一个完整的游戏,有多个关卡、道具,以及一个真正让你想重玩关卡的计分系统。从一个提示词出发,用一天时间构建完成。
这是30天Vibe编程挑战的第5天。跟随我,见证我用AI辅助编程在30天内上线30个项目的全程。







