2026-10-20测试跑绿了不代表对。这一周遇到三种「测试骗人」,每一次都差点让我得出错误结论。一、flaky test:连跑 6 次挂 3 次input-check 里「空格驯养野生生物」偶发失败,tamed=false。诊断第一步是孤立环境跑 40 次驯养,40/40 成功。游戏逻辑没问题。真凶在测试代码本身:它用 g.allies.splice() 移除野生 ally,但玩家的
2026-10-20游戏从「能玩」到「像个作品」,中间隔着声音和画面。BGM:交叉淡入淡出需求是按阶段换曲:标题页和引导页用一首,发育期按友群共鸣等级分前后期,四种群核降临各一首。实现用两个 Audio 元素轮换:新的从 0 渐强,旧的渐弱到 0 之后 pause(),交叉时长 1.8 秒。几个细节坑:不能硬改 volume 再 play(),会听到「咔」的一声重复 setTrack
2026-10-19这是整个项目最难查的问题,因为它表现得像三个不同的 bug。症状玩家同时靠近资源和节点,按住空格,驯养进度和修复进度会互相打断,其中一个突然归零。第一次误诊:以为目标在乱跳最直接的猜测是目标选择逻辑每帧重选最近的实体,导致焦点来回切。改成「粘滞锁定」—— 一旦锁定目标,只要它还在交互范围内就绝不换。修完,问题从「频繁打断」变成「偶尔打断」。有改善,但没解决。这种「
2026-10-17(补记于 10-20)代码能跑和能上架是两件事。这一章记四次翻车。一、APK 全设备秒退症状:TapPlay 上传后所有设备打开即闪退,日志里一行都不给。原因查了很久:d8 只喂了 MainActivity.class,没喂匿名内部类 MainActivity$1~3。dex 缺类,真机 onCreate 直接崩。诊断过程里的坑比 bug 本身更值得记:判断 dex
2026-10-10决定做《余烬荒原:群智回响》时,第一个问题不是玩法,是「怎么才能让别人双击就能玩」。约束来自上一个项目。屏风镶嵌那套用的是 Vite + 原生 ES module,本地起服务一切正常,但把产物直接发给别人,双击 index.html 就是白屏 —— 浏览器对 file:// 下的 module 加载直接拦掉,控制台甩一行 CORS 报错,玩家看不懂,也不会去开什么本地服务器