当前位置: 首页 > news >正文

用 WorkBuddy + AI 从零做出这个游戏(下):调物理、修 bug、换肤切关

系列第 3 篇(实战下)。接着上篇,游戏已经能玩了,但"手感"和"完整性"还差得远。这篇讲怎么把粗糙的第一版打磨成成品,以及两个加分项:换肤和关卡切换。

示例图:

1. 调掉落物理(越掉越快、碰到停住)

我:水果掉下来要有重力感,越来越快,碰到东西要停住叠上去,不能穿过去。

AI:每帧给掉落水果加速度,碰到下方水果就用碰撞分离顶在上方。

每帧{f.vy+=0.45;// 重力,越掉越快f.vy*=0.985;// 空气阻力(很小)f.y+=f.vy;// y 朝下,y 变大 = 往下// 碰到下方水果时,碰撞分离把它顶住,vy 清零}

用真实数字看"越掉越快"(初始 y=100, vy=0):

帧1: vy=0.45 → y=100.45 帧2: vy=0.89 → y=101.34 帧3: vy=1.33 → y=102.67 帧4: vy=1.76 → y=104.43 帧5: vy=2.18 → y=106.61

每帧下落距离 0.45→0.89→1.33→1.76→2.18,越来越大 = 加速下落。


2. 调碰撞(不重叠、滑落、卡缝、级联)

我:水果不能叠在一起,单果上要滑落不能粘,两个果之间的窄缝要卡住,点走一个它上面失去支撑的才掉。

AI 把碰撞拆成两块:

碰撞分离(两两重叠就各退一半,重复 10 次):

for(每对 a,b){dist=两点距离(a,b);if(dist<a.半径+b.半径){// 重叠重叠量=(a.半径+b.半径)-dist;沿连线 各退 重叠量/2;// 刚好分开}}

支撑判断(掉到固定水果圆面上):用"上一帧在面上、本帧到面下"判定穿过,单支撑滑落、双支撑窄缝卡住:

if(掉落果穿过某个挂枝果圆面){if(支撑只有1)沿圆面切线滑落;if(两个支撑且开口<1.45倍半径)卡住不动;}

踩坑实录:有次水果从容纳不下的窄缝穿过去。我截图说"缝隙容不下一个水果却穿过去了"。AI 加了"上一帧位置快照比对",穿模修好了。这种 bug 给 AI 看截图最有效

级联掉落(只放直接失去支撑的那层,不递归):

点走水果X{释放X正上方、且只靠X撑着的水果;// 不递归释放更上面的,留到下一帧再判断}

3. 修「消除不成对」的坑(配对完整性)

我:玩到最后剩 4 个消不掉,还有蓝色水果不成对。你计算错了?

AI 查了三处根因,不是算法错,是数据漏了:

根因现象修法
生成数量奇数某种颜色多一个,永远消不完每种颜色生成偶数个
摆不下被静默丢弃屏幕放不下,多出的没进队列摆不下的全部进补位队列
道具只删一个消除按钮只删当前果,配对断档同步删同色配对
生成关卡(){每种颜色数量=偶数;摆不下的水果 → 补位队列.add();// 别丢}

给后端同学的提醒:这坑你最该在意——本质就是"数据一致性"。我让 AI 加了个assertPairable()校验函数,启动时检查"每种颜色都是偶数、场上+队列总数配对",不配对直接报错。后端做单测那套思路直接用。


4. 换肤:让 AI 用 AI 生图(三国 → 蜡笔小新)

我:第二关水果换成三国人物,第三关换成蜡笔小新,图片用 AI 生成。

AI:用图像生成工具出 10 张透明底 Q 版头像,存到heroes/shinchan/,画水果时按关卡换图。

代码只改"画什么",逻辑不动(皮肤不影响本质):

画水果(f){if(当前关==2&&三国图就绪)圆形裁剪里画(三国头像[f.类型]);elseif(当前关==3&&小新图就绪)圆形裁剪里画(蜡笔小新头像[f.类型]);else(普通水果[f.颜色]);}

加分项:AI 生成的图要"预加载"完再显示,否则第一帧会闪。AI 加了onload回调,没加载完就先画普通水果兜底。


5. 加关卡切换功能

我:加个能切换关卡的功能。

AI:顶部"第 X 关"徽章改成可点,弹出 1~5 关选择面板,点哪个重开哪关。

点关卡徽章(){弹出面板(显示1~5,当前关高亮);}选关卡(lv){当前关=lv;清空三个筐;按 关卡规则(lv)重新生成;关掉面板;}

6. 方法论:怎么让 AI 高效修 bug

做了 26 个 bug,总结出让 AI 修得又快又准的 4 条:

  1. 说清三步:你点了啥 → 预期咋样 → 实际咋样。
  2. 带截图 + 圈出问题点:视觉 bug 截图比文字强 10 倍。
  3. 给坐标 / 数字依据:说"dist=14"不如说"a在(300,115) b在(350,115) 半径50 所以 dist=50"——AI 才能验证。
  4. 一次一个功能:别"顺便把物理也调了",容易改崩。

7. 总结

26 个 bug 复盘完,真正的"算法错误"只有 5 个,其余 21 个都是需求理解偏差(比如 y 轴朝下搞反)和参数没调对(迭代次数、阈值)。

给后端同学的话:你不是不能做前端游戏,你只是缺"把想法翻译成需求"这一步。WorkBuddy 帮你写代码、跑、预览,你只管想清楚 + 说清楚。这个游戏从空壳到成品,我一行前端没从头写,全是对话出来的。

系列完。源码在fruit-game.html,设计思路在第 1 篇,实战在上/下两篇。去试试,做个你自己的小游戏。

一句话收尾:设计想清楚(第1篇)→ 搭骨架(上篇)→ 调手感加料(下篇)= 一个能玩、能发、能换皮的游戏。

http://www.jsqmd.com/news/1388228/

相关文章:

  • 2026多账号增长活动的稳定性思考:一致性泄漏点在哪、怎么补
  • 人形机器人技术栈解析:从AI大模型到ROS 2仿真实践
  • 怀化冰山涯IT网站建设公司如何以极致性价比与定制化服务助力中小企业在数字化浪潮中突围?
  • 2026实力之选:EMC电磁兼容实验室与整改检测服务公司综合解析 - 卓企推荐
  • 2026淘宝运营机构课程体系怎么比较? - 人间自留地
  • 2026年巢湖服务器回收哪家好?看这份严选对比指南,让您放心择优无忧 - geo交流
  • 生产级 Feign 优化:补齐三大短板
  • 2026年上海老旧生产线拆除品牌机构实力观察:工业设备拆迁与回收清运一体化服务解析 - 卓企推荐
  • 33B大模型本地部署实战:llama.cpp量化技术详解与应用指南
  • 深度解析电子商城网站建设项目规划书:从零开始打造高转化率的线上零售帝国,避开常见陷阱与成本优化策略
  • 网站设计建设合同全解析:如何避开隐形坑位与避免后期扯皮,保障您的每一分预算都花在刀刃上
  • 写小说的AI软件下载指南:新手怎么选、怎么装、怎么不踩坑 - 生活动态圈
  • 从手搓CRUD到工程流水线:Java后端开发效率革命
  • 网站建设意向表:如何高效沟通避免踩坑,一份能帮乙方省50%时间的建站指南
  • 游戏鼠标手感深度测评:从传感器到微动,打造专属操控体验
  • 2026年新版参考重庆市配万新超薄镜片靠谱店铺时效科普:当前变化和行业参考、核心知识与常见疑问 - 小校长
  • 高空外墙清洗机器人有哪些知名品牌:【凌度智能】高空** - 秋山寄远
  • 市场情报研究中的浏览器环境工程:指纹、代理与会话的一致性实践
  • 解决新版 VSCode Remote-SSH插件连接Ubuntu虚拟机时,VSCode 反复出现 “正在下载 vscode 服务器”问题
  • 「钢联国贸」2026年8月13日成都地区H型钢销售有限公司最新价格行情 - 四川盛世钢联营销中心
  • 性能优化大师
  • 常见电子元器件工作原理与用途简写
  • 国产3A游戏爆发带动高精度建模人才刚需,拆解梵映、火星时代两大培训机构游戏建模教学管线差异 - 生活动态圈
  • 东方博宜OJ 2195:二叉排序树 ← 二叉搜索树
  • 注册中心不知选哪个?Zookeeper、Eureka、Nacos、Consul和Etcd 5种全方位剖析对比
  • Elasticsearch可视化工具对比:es-client与Head的实战指南
  • 深入解析如何开一家网站建设公司并实现盈利增长的路径
  • 2026服务有保障的GEO效果检测工具怎么选?优选推荐指南
  • 小区楼道监控数据集 楼道杂物堆积检测 yolo26楼道数据集的详细步骤。这个数据集包含真实场景下的楼梯杂物堆积和小区内杂物堆积的图片,已经标注为 YOLO 格式,并且划分好了训练集和验证集 (1)
  • 2026 年最新教程:如何用 Python+Playwright 实现 9 大内容平台一键发布(附开源代码)