下载 App
《千羽 · 涌现》开发日志 ④|竖屏适配
这周把游戏从桌面横屏搬进手机竖屏,以为只是改改画布比例,结果打了两场硬仗。
硬仗一:性能。 桌面版 160 鸟 O(n²) 邻居查找毫无压力,手机上直接爆炸——120 鸟每帧要做 14400 次距离判断,中端安卓帧率腰斩。解法是教科书级的空间网格哈希:把画面切成 56px 的格子,每帧把鸟插进所在格(链表法),求邻居只扫自身 + 周边 8 格。整体从 O(n²) 降到近似 O(n),120 鸟满帧。改动量 40 行,收益 10 倍——这种性价比的优化,值得在写第一行 Boids 代码时就做(虽然我没做,是手机替我上的这一课)。
硬仗二:手感。 桌面版"鼠标移动=举灯"搬到触屏完全不对味:鼠标是"悬停"模型,手指是"按压"模型。最终方案:
- 按住屏幕任意处即举灯,拖动即引导——一根手指、零学习成本
- 松手后灯留在原地。这是全场最重要的决定:玩家可以放下手,看鸟群围绕一盏静止的灯自行盘旋、自行涌现——游戏从"引导工具"变成了"观察玩具"。很多玩家最喜欢的是松手后的那几十秒
- 灯继续用 lerp 0.35 追赶手指(桌面版的教训),并把触屏的快速滑动判定一起解决了
其余是琐碎但必须的活:420×760 逻辑坐标 + 等比缩放适配各种长宽比、DPR≤2 高清渲染防糊、键盘快捷键换成右下三个大圆按钮(👁观察/↺重开/⏸暂停)、选关页改两列大卡。全部塞进一个零依赖的单 HTML 文件——发到手机浏览器打开就玩,这本身就是很好的传播形态。
竖屏还带来一个意外的叙事红利:出生点在下、巢在上,整局游戏变成一次"向上迁徙"。横屏时代没有的仪式感,白捡的。







