下载 App
【开发者日志#4】《星序》- 攻击逻辑:光线队列回放与碰撞判定
10/046 浏览综合
导言:
上期实现了星体的预警、音效和单根光线的测试。但一个星体不够,需要能够产生紧迫感的体验。
这次,我把之前丢进队列的光线按顺序取出来,让它们在玩家面前依次重放,并加上了真实的碰撞判定。小球终于体验到了被自己过去的轨迹“追杀”的感觉。

本期进展:
完成队列回放机制:我用 Queue<RayRecord> 存储光线数据(起点位置、目标位置、音效索引)。当累计的光线达到 5 个时,自动触发一次“回放阶段”。每 0.6 秒从队列中取出一个,启用光线并播放对应音效,持续 1 秒后禁用并放回对象池。
加入音阶测试:为了降低纯视觉躲避的难度,我给每个发光体按顺序分配了对应的音效。回放时不仅能看到光线,还能听到一段有规律的旋律。
碰撞与反馈:给启用中的光线挂上了 BoxCollider2D(或射线检测),玩家小球碰到光线后会扣 1 点血,并伴随震动和短暂的闪烁提示。目前还没有写死亡,只是做了反馈测试。
状态重置优化:为了确保对象池取出的光线不携带上一次的残留状态,我彻底重置了 LineRenderer 的点位、颜色和音效播放器。不然上一波的尾巴偶尔会残留到下一波里。
问题与风险:
公平性受到严重挑战:我自己测试时发现,当多条光线连续射向之前记录的位置时,如果玩家刚好站在交叉位内,画面会瞬间变成“必死局”。我意识到,如果光线的发射频率和玩家的移动速度不匹配,这个游戏会变成纯粹的折磨。
“站桩不动”的终极解法:我尝试站在原地不动。结果发现,只要位置几乎不变,会导致产生的星体几乎会在同一个位置附近,那么发射的光线就不会交汇,就难以产生紧迫感。这几乎是这个设计的一个致命漏洞,必须在下期加入“必须移动的理由”(比如掉落能量球,或者短时间内移动接触一定数量的所有信标)。
音频同步问题:理论上音效和光线启用是同步的,但实际运行时,有时音效会重叠,或者稍微慢半拍,导致听感不如预期那么“带感”。音乐调度器还需要优化。
下期计划:
正式加入游戏循环:开始界面、失败条件(血量归零)、重新开始按钮。这部分我其实已经做了简单的 UI,是时候放出来了。
加入“必须移动”的机制:玩家不移动时会缓慢掉血,或者在地上随机生成需要接触的信标,逼迫玩家持续产生轨迹。
调整难度曲线:测试第一波回放 3 条光线、第二波 5 条光线时的玩家存活率,确定合适的发射间隔。
完善音频调度器,让回放过程更像一段完整的旋律。











