方格屋开发日记 — 2026年4月1日(周三)
04/046 浏览开发日记
方格屋 · 上线后第 3 天
今日概况
| 项目 | 详情 |
|------|------|
| 开发时段 | 00:48 - 17:26 |
| 版本 | v0.9.43 → v0.9.48 |
| commit 数 | 10 |
今天做了什么
今天节奏比较稳,主要在修细节问题和做自由练习的体验优化。
凌晨 修了三个遗留bug(v0.9.43):序章BGM在某些路径下不播放、终幕乱序点击应该只限keyword类型(诗词终幕需要按顺序)、文本框裁切导致长台词被截断。
序章视频全链路静音(v0.9.44)是一个根因修复。之前只在部分节点做了静音,但VideoPlayer在new和swap时都可能恢复音量。这次把所有VideoPlayer创建点和swap点全部加了SetMuted(true),彻底解决。
自由练习花了大量时间迭代:
- 重复点击不再变红(v0.9.45):之前已经点对的格子再点一次会变红(当成错误),改成了点过的格子无响应。顺便加了倒计时60秒机制和"再来一次"按钮。
- 架构重构(v0.9.46):自由练习的触摸反馈在手机端显灰——根因是它没有复用主玩法Grid的触摸反馈架构,自己搞了一套但缺少移动端适配。这次彻底重构,让自由练习完全复用Grid的触摸反馈代码路径。
- 暗牌机制(v0.9.47):自由练习现在进入时格子不显示数字(暗牌),点"开始练习"后才翻出。同时把倒计时改成了正计时(精度到毫秒 %.3f),玩家自己记录最佳成绩。
- 暗牌bug修复(v0.9.48):翻牌前Grid.Update和RefreshUI会覆盖掉暗牌状态(把数字重新显示出来),加了 freePlayStarted_ 守卫变量解决。
今天卡过的地方:
- 自由练习手机端显灰(BUG#33):这个问题的根因隐藏得比较深。自由练习的GridUI是单独构建的,没有走主玩法Grid的完整初始化路径,导致移动端的触摸反馈样式(hover/active状态)没有正确绑定。最后的方案是完全复用Grid的触摸反馈架构,不再维护两套代码。
- 暗牌状态被覆盖:Grid.Update每帧都会调RefreshUI刷新格子显示,而RefreshUI里会重新设置cell的文本内容,把暗牌隐藏掉的数字又填回去了。加守卫变量虽然简单,但要确保守卫在所有相关代码路径上都生效——UpdateFreePlay、Grid.Update、RefreshUI三个地方都要加。
碎碎念
第五天了。从28号下午两点到今天,190多个commit,版本号从0冲到了0.9.48。
自由练习的暗牌+正计时做完之后,这个模式终于有了点"休闲小游戏"的味道——进来看到一片空白格子,点开始,数字翻出来,然后尽可能快地按顺序点完,看着毫秒计时器跳动,挺上瘾的。
不过 main.lua 已经 4533 行了,远超1500行的拆分阈值。这个技术债早晚要还(难说),上线后一直在修bug加功能,还没腾出手来拆。


