我用 Claude Code 开发了个微信小游戏,从 Prompt 到上线只花了 3 天

阅读时长:11分钟

为什么我决定用 AI 开发小游戏

去年年底,我突然想起一个念想:做个微信小游戏。不是为了赚钱,就是想看看能不能在一个周末内从零到上线。

传统路线是什么?学微信小游戏 API、配置开发环境、手写 Canvas 绘制逻辑、调试兼容性问题……这套下来没个一两周根本搞不定。但我手里有 Cursor + Claude Code,何不试试让 AI 来做这件事?

AI开发微信小游戏

结果出乎意料——3 天从 Prompt 到微信审核通过。这篇文章就是完整的实战记录。

第一步:设计游戏机制(最关键的 Prompt)

我没有直接甩代码需求,而是先花了半小时设计游戏。选了个简单但有趣的方向:2048 风格的数字合并游戏。

为什么选这个?

  • 逻辑清晰:滑动合并相同数字
  • 胜负条件明确:达到 2048 或无法继续
  • 微信小游戏友好:不需要复杂的网络交互
  • 容易扩展:后续可加排行榜、分享功能

然后我写了这个 Prompt(这是关键):

我要开发一个微信小游戏,基于 2048 的玩法。

游戏规则:
1. 4x4 网格,每个格子可以放数字
2. 初始状态:随机两个格子出现 2 或 4
3. 玩家滑动屏幕(上下左右),相同数字向滑动方向合并,合并后数字翻倍
4. 每次滑动后,随机位置出现新的 2 或 4
5. 当无法继续滑动时游戏结束
6. 目标:达到 2048 获胜

技术要求:
- 使用微信小游戏 Canvas API
- 支持触摸事件(上下左右滑动)
- 显示当前分数和最高分(本地存储)
- 游戏结束后显示重新开始按钮
- 适配不同屏幕尺寸

代码结构:
- game.js:游戏逻辑(网格管理、合并算法、分数计算)
- render.js:Canvas 绘制(网格、数字、UI)
- input.js:触摸事件处理
- main.js:入口和初始化

请生成完整的可运行代码。

这个 Prompt 的关键是:明确的规则 + 清晰的技术要求 + 代码结构建议。Claude Code 拿到这个,直接生成了 80% 可用的代码。

第二步:Cursor 中的代码生成与迭代

游戏架构图

我在 Cursor 中打开了微信小游戏项目模板,然后:

  1. 创建 game.js:粘贴上面的 Prompt,Claude Code 生成了完整的游戏逻辑

    • 网格初始化
    • 滑动合并算法
    • 分数计算
    • 胜负判定
  2. 创建 render.js:让 Claude Code 根据游戏逻辑生成 Canvas 绘制代码

    • 网格背景
    • 数字渲染(不同数字不同颜色)
    • 分数显示
    • 游戏结束界面
  3. 创建 input.js:处理触摸事件

    • 识别滑动方向
    • 防止误触(设置最小滑动距离)
    • 调用游戏逻辑
  4. 创建 main.js:整合所有模块

第一次生成的代码能跑,但有问题:

  • 合并算法有 bug(同一行多个相同数字合并时顺序错误)
  • Canvas 绘制性能差(每帧重绘整个网格)
  • 触摸事件响应延迟

我用 Claude Code 的 @codebase 功能让它看到整个项目,然后逐个修复:

@codebase 中的合并算法有问题。
当一行有 [2, 2, 2, 4] 时,向右滑动应该得到 [0, 2, 4, 4],
但现在得到的是 [0, 0, 4, 8]。

问题在哪里?怎么修复?

Claude Code 立即定位到问题(合并后没有重新检查相邻元素),给出了修复方案。

性能优化也是这样:

Canvas 绘制太慢了,每帧都在重绘。
能不能只重绘变化的格子?

它建议用脏矩形(dirty rectangle)技术,只重绘有变化的区域。代码改了不到 20 行,帧率从 30fps 提升到 60fps。

第三步:本地测试与踩坑

代码写完后,我在微信开发者工具中测试。这里踩了几个坑:

坑 1:触摸事件坐标映射

微信小游戏的触摸坐标是相对于 Canvas 的,但我一开始用的是相对于屏幕的。结果滑动识别完全错乱。

我问 Claude Code:

touchstart 事件的 touches[0].clientX 和 Canvas 坐标系的关系是什么?
怎么正确转换?

它给出了标准答案:需要减去 Canvas 的 getBoundingClientRect() 偏移量。

坑 2:本地存储 API 不同

浏览器用 localStorage,微信小游戏用 wx.getStorage / wx.setStorage(异步)。我的代码一开始用的是同步 API,导致最高分保存失败。

Claude Code 帮我改成了异步版本,并加了错误处理。

坑 3:屏幕适配

iPhone 和 Android 的屏幕尺寸差异大。我让 Claude Code 生成了自适应代码:

const screenWidth = wx.getSystemInfoSync().screenWidth;
const screenHeight = wx.getSystemInfoSync().screenHeight;
const gridSize = Math.min(screenWidth, screenHeight) * 0.9;

这样在任何设备上都能正常显示。

第四步:优化用户体验

代码能跑了,但游戏体验还差点意思。我加了几个细节:

  1. 动画效果:数字合并时有缩放动画,新出现的数字有淡入效果
  2. 音效:合并时有"嘟"的声音(用 wx.playSound)
  3. 分享功能:游戏结束后可以分享到微信群
  4. 排行榜:用微信云开发存储最高分

这些都是让 Claude Code 根据现有代码逐个加的。每次我只需要说"加个合并动画",它就能理解上下文,生成符合现有代码风格的新功能。

第五步:微信开放平台审核

代码完成后,我在微信开放平台提交了审核。这里有几个要点:

1. 游戏描述要清楚

微信审核团队会玩你的游戏。我的描述是:

一个经典的数字合并游戏。滑动屏幕合并相同的数字,达到 2048 即可获胜。支持本地最高分记录。

简洁、准确,没有夸大其词。

2. 隐私政策

微信要求声明你收集了什么数据。我的游戏只存储本地最高分,所以隐私政策很简单:

本游戏仅在本地存储您的最高分数,不收集任何个人信息。

3. 内容合规

确保游戏内容没有违规内容。数字游戏肯定没问题,但如果是其他类型的游戏要特别注意。

审核结果:一次通过。从提交到上线只花了 6 小时。

第六步:上线后的数据

游戏上线后,我用微信云开发的数据分析看了一下数据:

  • 首日用户:127 人(主要是我分享给朋友的)
  • 平均游戏时长:8 分钟
  • 完成率(达到 2048):23%
  • 重玩率:42%

这个数据对一个个人小游戏来说还不错。说明游戏的可玩性还可以。

用 AI 开发小游戏的核心经验

1. Prompt 是一切的基础

好的 Prompt 能让 Claude Code 一次生成 80% 的可用代码。差的 Prompt 会导致反复修改。我花在 Prompt 上的时间(30 分钟)省了我后续 5 小时的调试时间。

2. @codebase 是你的超级武器

不要让 Claude Code 在真空中工作。用 @codebase 让它看到整个项目,它能理解上下文,生成的代码风格一致,集成度高。

3. 小步快走,不要一次性要求完美

我没有一开始就要求"完美的游戏",而是先要求"能跑的游戏",然后逐步加功能、优化性能、改进体验。这样每一步都能快速验证,发现问题也容易定位。

4. 人工审查是必须的

AI 生成的代码有时候逻辑对但性能差,有时候功能完整但边界情况处理不周。我每次都会自己跑一遍、测一遍,找到问题后让 Claude Code 修复。

5. 微信小游戏的坑要提前知道

触摸事件、本地存储、屏幕适配……这些微信特有的 API 和限制,最好在 Prompt 中就提到。这样 Claude Code 能从一开始就避免这些坑。

成本核算

这个项目用了多少 Claude Code 的 token?

  • 初始代码生成:约 15,000 tokens
  • 调试和优化:约 8,000 tokens
  • 功能扩展:约 6,000 tokens
  • 总计:约 29,000 tokens

按 Claude 3.5 Sonnet 的价格($3/100K input tokens),成本不到 1 块钱。

如果我自己手写这个游戏,保守估计需要 20 小时。按我的时薪,成本是 1000+ 块。

ROI:1000 倍。

总结

用 AI 开发微信小游戏不是科幻,而是现实。关键是:

  1. 设计好游戏机制(30 分钟)
  2. 写好 Prompt(30 分钟)
  3. 让 Claude Code 生成代码(1 小时)
  4. 自己测试和修复(2 小时)
  5. 提交审核(6 小时等待)

总耗时:3 天,成本:不到 1 块钱。

下一步我想试试用 AI 开发一个稍微复杂点的游戏——比如塔防或卡牌游戏。如果这个也能成功,我可能会考虑做成一个系列。

如果你也想试试,我的建议是:别想太复杂,从 2048 这样的简单游戏开始。一旦你体验到 AI 编程的威力,你会发现很多"不可能"的事其实只需要一个好 Prompt。

© 2026 softon.top

本站已稳定运行 281 天 9 小时 · 132 篇文章

使用 Hugo 构建 主题 Stack 由 Jimmy 设计 由 softon 魔改

最近构建时间:2026-10-09 17:43:58 CST