即刻App年轻人的同好社区
下载
App内打开
奥古斯平SpringWoo
245关注7被关注0夸夸
奥古斯平SpringWoo
5天前
muse 的云端电脑,WPS 灵犀 AI 也有🥹
配置也差不多
00
奥古斯平SpringWoo
5天前
muse 的云端电脑,WPS 灵犀 AI 也有🥹
00
奥古斯平SpringWoo
7天前
vibe coding 有毒
有成就感
但毕竟没经验(不会编程、产品设计)
demo 半成品
鸡肋也
00
奥古斯平SpringWoo
26天前
为了考试,戒断早上批阅即刻
00
奥古斯平SpringWoo
28天前
毕业论文写出来了,还要预答辩,送审......
关键是导师不在,啥时候是个头
00
奥古斯平SpringWoo
3月前
昨天听一个学界大佬聊学术,除了佩服其一直的学习动力和能力(30 岁学英语;博导了还要辅导;学南拳;会唱歌)
还有一种异类的行动力——人往低处走(一流高校到二流再到三流)、不会或不想用 PPT (拯救抬头率,学生看不到下一句内容,只能认真听讲;要求学生写诗)
00
奥古斯平SpringWoo
3月前
突然想到了“以史为镜,以人为镜”这句话。AI 不是个人的镜像,是基于人类知识历史的 LLM 反映(以史为镜),而 Agent 是连接人类知识历史和现在的硅基人(以硅基人为镜)。
AI 之镜,联通古今,可谓人之“时空法则”神器,要掌握它,需要不断的开悟,开悟的前提也是你的资质,不断开悟就是不断检测和提升资质。
坐拥神器,岂有“束搁”之理

相柳Isaak: AI 是一面照出你自己段位的镜子: 你能看出它多少破绽就说明你在这个领域到了多深

00
奥古斯平SpringWoo
3月前
有了AI,这件事如果没有我,还有没有人去做,值不值得去做
00
奥古斯平SpringWoo
4月前
感谢。作为一个从未编程的文科人,了解程序开发的全过程,很值得庆幸

檀奕623: 我用 AI 做了一个微信小游戏,居然帮我赚钱了(附 Claude code 全流程) 是的你没看错,我直接跑通了微信小游戏从 0 到 1 的完整闭环:物理引擎自研、9 关关卡设计、分包加载、激励视频变现、分享拉新。 下面把代码、prompt、后台数据、踩过的坑分享出来,看完后你也能复制这套流程。 一、先看长什么样(30 秒了解项目) 游戏名:切割投喂大作战 类型:物理益智,9 关 玩法:切断绳子 → 水果掉落 → 喂给小怪物 技术栈: - 微信小游戏原生 JS(不用任何引擎,Canvas 直接画) - 自研 2D 物理引擎(重力 + 绳子约束 + 碰撞) - 主包 + 分包架构(绕过 4MB 主包限制) markdown 代码规模: | 模块 | 行数 | |---|---| | 主包(入口/加载/主菜单/健康提示) | ~1180 行 | | 游戏核心场景(game-scene.js) | 2801 行| | 物理引擎 | 756 行 | | 9 关关卡数据 | 523 行 | | 其他场景(选关/复活/结算/设置/暂停/帮助) | ~2200 行 | | 总计 | ~8200 行 | 这 8000 行代码我自己写的不超过10行,剩下的全是和 AI 帮我完成的。 二、为什么选微信小游戏 挑这个赛道有 3 个原因: 1. 零审核成本 —— 个人开发者就能上线,不像 App Store 那样麻烦 2. 变现路径短 —— 接一个激励视频广告 SDK 就有现金流(虽然我现在赚的不是很多) 3. 代码量可控 —— 一个完整的小游戏 5000~10000 行 三、AI 实操(重点章节,分 4 个真实案例) 下面 4 个案例都是这个项目里真实发生过的对话,每个都带可复制的 prompt 模板。 案例 1:让 AI 写 756 行的 2D 物理引擎 最让我意外的是 AI 真的能从 0 写出可用的物理引擎,我没用 matter.js 或 box2d,纯手写(其实是纯 AI 写)。 核心需求:重力 + 绳子约束 + 碰撞检测 + 不同关卡不同物理参数 我给 Claude 的 prompt(你可以直接抄): markdown 帮我用纯 JS 写一个简化版 2D 物理引擎,要求: 1. 不依赖任何外部库 2. 支持:重力加速度、刚体小球、绳子约束(端点固定) 3. 支持切断绳子(绳子被切后小球受重力影响) 4. 支持矩形障碍物碰撞反弹 5. 提供 update(deltaTime) 接口给游戏循环调用 6. 物理参数可按关卡动态调整(比如第3关重力大一点) 目标平台是微信小游戏,60 FPS。 AI 一次就给出了能跑的骨架,后面我花了 2 天时间让它逐步优化: - 第 1 轮:把绳子从单纯距离约束改成 Verlet 积分(更稳定) - 第 2 轮:解决第 3 关物体抖动(gravity 从 0.7 调到 0.6) - 第 3 轮:切绳后强制触发重力(修复"切了但不掉"的 bug) 最终成品在 `physics-engine.js` 里,开头长这样: javascript class PhysicsEngine { constructor(screenHeight = 600) { this.gravity = 0.5; this.objects = []; this.ropes = []; this.collisionGroups = { OBJECT: 1, ROPE: 2, OBSTACLE: 3, TARGET: 4 }; this.currentLevel = 1; this.screenHeight = screenHeight; } setCurrentLevel(level) { this.currentLevel = level; // 根据关卡调整物理参数 if (level === 3) { this.gravity = 0.6; // 第3关使用适中的重力,减少抖动 } else if (level === 5) { this.gravity = 0.5; // 第5关使用更小的重力 } else { this.gravity = 0.7; } } // ... } 经验:让 AI 写复杂模块时先给清晰的接口约定,再让它实现内部细节。不要直接说"写个物理引擎",要说"写一个有 update/addObject/addRope/cutRope 接口的物理引擎"。 案例 2:让 AI 设计 9 关的难度曲线 关卡设计是个坑,既要保证前面几关的通过率,又要保证后面的关卡难度。 我的 prompt: markdown 帮我设计 9 个关卡的数据结构,每关包含: - targetArea(小怪物头上的目标区域) - objects(要切下来的水果,每关不同:苹果/桃子/西瓜...) - ropes(绳子的固定端 + 连接物体) - obstacles(障碍物,影响掉落轨迹) - hint(玩家提示文字) 难度曲线要求: - 第 1 关:1 根绳子,无障碍,通过率 95% - 第 2-3 关:单绳 + 简单障碍 - 第 4-6 关:多绳,需要按顺序切 - 第 7-9 关:复杂物理谜题 输出成 LevelData.getLevelXData() 这种静态方法,方便我后面单独调每一关。 AI 生成的数据结构现在在 `level-data.js` 里,第 1 关长这样: javascript static getLevel1Data() { return { targetArea: { x: 300, y: 500, width: 80, height: 80 }, objects: [{ x: 200, y: 180, radius: 25, color: '#FF6B6B', type: 'target', affectedByGravity: false, fruitStyle: { type: 'apple', color1: '#E94F4F', color2: '#FFF' } }], ropes: [{ startX: 200, startY: 20, endX: 200, endY: 180, maxLength: 160, attachedObjectIndex: 0 }], obstacles: generateObstacles(1), hint: '等待合适的时机切断绳子,让苹果掉入目标区域' }; } 经验:让 AI 做关卡设计时要给它明确的难度百分比目标("第1关通过率95%"),AI 会主动控制元素复杂度,比让它"自由发挥"靠谱得多。 案例 3:让 AI 解决主包超 4MB 的工程难题 微信小游戏主包限制 4MB,我所有水果图、关卡背景、音效加起来很容易超。 踩坑前我的项目结构:所有的东西都在 `/js` 一坨,导致主包 6.2MB 直接上传失败。 我给 AI 的 prompt: markdown 我的微信小游戏主包超过 4MB 了,必须拆分包。 现状:所有场景在 /js/scenes/,所有资源在 /images/ 和 /audio/ 帮我设计一个分包方案: 1. 主包只放:入口、加载场景、主菜单、健康提示 2. 分包放:游戏场景、物理引擎、关卡数据、9 张水果图 3. 第一次进入游戏场景时,wx.loadSubpackage 异步加载 4. 加载失败要有兜底(showModal 提示用户) 最好能写一个 switchScene(sceneName) 的统一调度函数, 游戏场景自动走分包加载,主菜单等场景走同步 require。 AI 给出的方案现在跑在 `main.js` 里: javascript const SUBPACKAGE_SCENES = [ 'levelSelect', 'game', 'revive', 'result', 'settings', 'pause', 'help' ]; async switchScene(sceneName, params = {}) { if (SUBPACKAGE_SCENES.includes(sceneName)) { if (!this._subpackageLoaded) { await new Promise((resolve, reject) => { wx.loadSubpackage({ name: 'assets', success: () => { this._subpackageLoaded = true; resolve(); }, fail: (err) => { this.showModal('错误', '资源包加载失败,请检查网络后重试。') .then(() => this.exitGame()); reject(err); } }); }); } // 动态 require 分包场景 if (!this.sceneClasses[sceneName]) { switch (sceneName) { case 'game': this.sceneClasses.game = require('../subpackages/assets/scenes/game-scene'); break; // ... } } } // ... } 最终主包压到 1.3MB,分包 5MB,上传秒过。 经验:纯工程问题(构建、目录结构、API 适配)是 AI 最强的领域。 案例 4:让 AI 帮我修"弹窗要点两次"的 bug 这是这个项目里最骚的一个 bug。`wx.showModal` 弹出来的时候第一次点确认没反应,第二次才生效。 我把 `main.js` 完整贴给 Claude,它 30 秒后给了我答案: > 触摸事件没有阻断。`wx.showModal` 弹出时背景的 canvas 还在响应 `wx.onTouchStart`,导致弹窗下面的场景吃掉了第一次点击。 修复方案就 几行代码: javascript // main.js showModal(title, content, showCancel = true) { this.modalPending = true; // ← 加状态锁 return new Promise((resolve) => { wx.showModal({ title, content, showCancel, success: (res) => { this.modalPending = false; // ← 弹窗关闭后释放 resolve(res.confirm); }, fail: () => { this.modalPending = false; resolve(false); } }); }); } // 触摸事件 wx.onTouchStart((e) => { if (this.modalPending) return; // ← 弹窗期间阻断 // ... }); 经验:遇到一时半会儿解决不掉的 bug 直接把整个文件甩给 AI,比自己 print 调试快 10 倍。前提是你要会判断 AI 的诊断对不对(不能闭眼信)。 四、变现机制拆解 微信小游戏个人开发者唯一稳定的变现就是激励视频广告(rewardedVideoAd)。 我封装了一个 `AdManager` 单例(核心代码 50 行): 提示: - `onClose` 一定要判断 `res.isEnded`,否则用户点叉关闭也会给奖励属于违规 - 一定要有 `isAdBusy` 锁,否则用户连点 3 下会触发 3 次广告 - 测试时用真机测试,开发者工具看不到真实广告 五、给你的 AI 协作 4 条心法(实操总结) 1. 先约定接口,再让 AI 实现 错误示范:「帮我写一个物理引擎」 正确示范:「写一个有 `addObject` / `addRope` / `cutRope` / `update(dt)` 接口的物理引擎」 2. 大文件改 bug 直接整文件甩过去 不要复制片段。Claude 一次能吃 200k token,整个文件丢进去诊断速度比你自己 print 快 10 倍。 3. 让 AI 写注释比让 AI 写代码更值得 让它每个函数加 JSDoc 注释,未来你自己读代码、再次和 AI 对话都会快很多。 4. 不信任 AI 的"自信" AI 经常会一本正经地胡说。关键模块(物理、广告等模块)必须自己跑通才能信。 七、最后 真正的收益是:我现在知道了怎么用 AI 把一个完整产品从想法做到上线,我觉得这才是最宝贵的。 也欢迎评论区聊聊:你最想用 AI 做什么项目?

10