用码道 AI 编程助手开发合成大西瓜水果合成网页游戏
一段需求码道自动写出 489 行、约 13.7 KB 的单文件水果合成游戏——自研 Canvas 圆球物理重力 6 子步积分 弹性碰撞 质量加权位置修正、樱桃到西瓜 12 级合成链、同级碰撞自动升级、双击 HTML 就能扔水果、合西瓜分类: ai-development标签: CodeArts, AI编程, 合成大西瓜, Canvas, 物理引擎, 网页游戏难度: 初级读者: 前端开发者、编程学习者、技术写作者1. 开篇钩子我在码道 TUI 里输入了一段需求「做一个合成大西瓜水果合成网页游戏单个 HTML 文件即可运行……」约 4 分钟后一个 489 行、约 13.7 KB 的完整游戏就自动生成了水果从顶部掉落两个同等级水果碰撞后自动合成下一级樱桃→草莓→葡萄→柠檬→猕猴桃→番茄→桃子→菠萝→椰子→半个西瓜→西瓜两个西瓜相撞直接消除加 78 分鼠标移动瞄准、点击/空格/下键投放左右方向键微调位置水果堆超过警戒线判定游戏结束合成瞬间有 toast 提示和扩散光环特效。整个物理引擎是码道自研的——重力积分、圆-圆/圆-墙弹性碰撞、按质量加权的穿透修正6 子步迭代保证堆叠稳定不抖。双击 HTML 就能开玩最高分还会存进 localStorage。2. 码道 TUI 安装复制下面的命令到终端3 步完成安装# 1. 一键安装sh-c$(curl-Lhttps://cnnorth4-cloudide-marketplace.obs.cn-north-4.myhuaweicloud.com/codearts/cli_tui/install_script/install.sh)# 2. 配置环境变量exportPATH~/.codeartsdoer/installers:$PATHexportCODEARTS_CLI_AK你的AKexportCODEARTS_CLI_SK你的SK# 3. 启动 TUIcodeartsAK/SK 获取https://codearts.huaweicloud.com/portal/settings/cli-auth还没有码道立即开通体验https://developer.huaweicloud.com/codeartsco.html?sourcedmzntgwsfsourceaddmzntgwwbwz安装完成后在命令行或 PowerShell 中输入codearts回车即可打开码道 TUI。把开发需求贴进输入框码道会自动分析并生成完整代码。3. 码道能力一览这次开发中码道展示了以下能力自然语言编程我说「合成大西瓜」码道直接理解成物理引擎 合成逻辑 结束判定 界面美化的完整方案自主技术选型自研 Canvas 圆球物理重力 6 子步积分 圆-圆/圆-墙弹性碰撞 质量加权位置修正不依赖第三方物理库工程细节到位结束判定用maxFallen记录球的最高落点避免刚下落的新球被误判为游戏结束投放后加 480ms 冷却防止连点自检与收尾生成后主动做语法检查验证文件完整性再汇报功能清单4. 任务描述我想要一个「合成大西瓜」水果合成网页游戏Fruit Merge / Watermelon Game具体要求水果从顶部掉落相同等级的两个水果碰撞后合成下一级樱桃→草莓→葡萄→橘子→柠檬→猕猴桃→番茄→桃子→菠萝→椰子→半个西瓜→西瓜Canvas 圆球绘制并区分颜色大小点击或按方向键控制掉落位置水果堆积超过警戒线则游戏结束显示当前分数、合成等级提示和最高分localStorage 持久化提供重新开局按钮深色主题界面美观包含操作提示双击 HTML 文件即可在浏览器中运行5. 开发过程及真实截图我在码道 TUI 中贴入需求后码道开始拆解需求并生成代码码道在 Thinking 中规划物理引擎与游戏机制下落冷却、结束判定、待投放球逻辑约 4 分钟后码道汇报完成文件已创建、输出功能清单双击生成的watermelon.html在浏览器中运行投放几个水果后画布中已堆起草莓等水果左侧面板显示分数/最高分/下一个水果预览和操作提示6. 代码解析码道生成的代码是一个自包含的单页应用核心逻辑非常清晰自研物理引擎每帧跑 6 个子步每步先积分重力与速度再做墙壁和球之间的碰撞求解。球-球碰撞用质量加权ma r²分摊穿透量并用冲量公式更新速度堆叠起来非常稳定functionresolveBalls(){for(leti0;iballs.length;i){for(letji1;jballs.length;j){constaballs[i],bballs[j];if(a.dead||b.dead)continue;constdxb.x-a.x,dyb.y-a.y;constdistMath.hypot(dx,dy);constmina.rb.r;if(distmindist0.0001){if(a.levelb.levela.releasedb.released!a.merging!b.merginga.age2b.age2){merge(a,b);continue;}constnxdx/dist,nydy/dist;constoverlapmin-dist;constmaa.r*a.r,mbb.r*b.r;consttotalmamb;a.x-nx*overlap*(mb/total);a.y-ny*overlap*(mb/total);b.xnx*overlap*(ma/total);b.yny*overlap*(ma/total);// 冲量更新速度...}}}}同级合成两个同等级、且都已释放的球相撞年龄 2 帧防止刚生成的球误合并就标记为 merging在碰撞点生成下一级球并加分functionmerge(a,b){a.mergingb.mergingtrue;a.deadb.deadtrue;constnx(a.xb.x)/2;constny(a.yb.y)/2;constnla.level1;scoreFRUITS[Math.min(nl,FRUITS.length-1)].score;effects.push({x:nx,y:ny,r:a.r,max:a.r30,life:1});if(nlFRUITS.length){balls.push({x:nx,y:ny,vx:0,vy:0,r:FRUITS[nl].r,level:nl,released:true,dead:false,merging:false,maxFallen:ny,age:0});showToast(合成 FRUITS[nl].name);}else{showToast(双西瓜消除78);}}结束判定防误判用maxFallen记录球到达过的最低点只有球确实先掉到警戒线下方、再回到红线以上并趋于静止时才判定结束刚投下的新球不会被误判functioncheckGameOver(){for(constbofballs){if(!b.released)continue;if(b.maxFallenDANGER_Y60b.y-b.rDANGER_YMath.abs(b.vy)0.6Math.abs(b.vx)0.6){endGame();return;}}}投放冷却每次投放后 480ms 内不能再投配合aimX瞄准与左右方向键微调手感流畅。在浏览器中实际验证时连续投放 4 个水果后草莓稳稳堆在画布底部两个草莓相撞瞬间弹出「合成」toast 并出现扩散光环画面稳定不抖动——6 子步物理在 60fps 下表现很好。7. 真实运行效果双击watermelon.html即可开始右侧是深色渐变画布顶部有虚线「警戒线」鼠标在画布上移动时一个半透明水果跟随瞄准、点击或空格/下键投放左右方向键可以微调投放位置。两个同等级水果碰撞后合成下一级并弹出 toast 提示与扩散光环特效逐级合成到「半个西瓜」「西瓜」两个西瓜相撞直接消除加 78 分。左侧面板实时显示当前分数、最高分localStorage 持久化、下一个水果预览以及完整的操作说明与规则水果堆超过警戒线判定游戏结束「重新开局」按钮一键重来触屏设备也支持。8. 能力总结一次生成完整可用从需求到可双击运行的单文件水果合成游戏全程约 4 分钟无需手工补代码物理方案专业自研重力积分 6 子步迭代 弹性碰撞 质量加权修正堆叠稳定不抖动不依赖第三方库交互细节到位瞄准/投放/微调三套操作、投放冷却、防误判结束判定、合成特效与 toast、最高分持久化体验闭环完整工程习惯良好物理求解/合成/渲染/状态管理函数拆分清晰生成后主动做语法检查代码可读性好9. 总结用码道开发合成大西瓜这类网页游戏最大的感受是「需求即产品」把玩法要点说清楚码道就能给出包含自研物理引擎、合成逻辑与视觉特效的成品。对想了解 Canvas 圆球物理、碰撞检测与合并逻辑或者刚学前端想看看「一个游戏是怎么从零写出来的」的同学让码道先生成一份再对照源码逐行读是很好的学习路径。下一轮我打算让码道继续挑战不同类型的网页应用继续记录真实的开发过程。

相关新闻

JEnv实战指南:Java多版本环境管理与自动化切换

JEnv实战指南:Java多版本环境管理与自动化切换

1. 为什么我们需要一个JDK版本切换工具? 如果你是一个Java开发者,或者你的工作环境里需要运行基于Java的应用程序,那么你大概率遇到过这样的场景:手头一个老项目,必须用JDK 8才能编译通过;另一个新项目&…

2026/11/8 6:27:56 阅读更多 →
GPT网页输出的内容快速整理并输出PDF

GPT网页输出的内容快速整理并输出PDF

实现与LLM对话内容的直接复制,然后再markdown格式下修改,然后导出为pdf进行检查修改。定稿后再编辑公式啥的,这样可以避免一开始就编辑公式浪费时间。 1 对话内容导出为Markdown文件,或直接复制出来2 将导出的md文件或复制后内容存…

2026/11/7 11:42:44 阅读更多 →
前端PDF图片提取技术:pdf.js实战指南

前端PDF图片提取技术:pdf.js实战指南

1. 项目概述:前端PDF图片提取方案最近在开发一个文档处理功能时,遇到个需求:用户上传PDF文件后需要自动提取其中的图片资源。这个看似简单的需求,在实际开发中却有不少技术细节需要考虑。经过多轮技术调研,最终选择pdf…

2026/11/2 15:48:17 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/8 1:19:03 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/7 12:08:40 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/8 1:35:05 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/8 1:38:41 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/7 12:08:40 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/8 1:23:14 阅读更多 →

日新闻

周新闻

月新闻