scrap-swarm 技术资产沉淀:多关节机甲骨骼状态机、番剧冲击帧演出与 60Hz 确定性竞技场 Harness
1. 项目概览与核心突破
- 仓库地址:turbo998/scrap-swarm
- 在线演示:进入《废土斗机祭 · Scrap Swarm》 | 进入角色与机体设定集 (Hangar)
- 技术栈:TypeScript + Phaser 3 + Web Audio API + 60Hz Deterministic Arena Simulation + Vitest + Playwright
《废土斗机祭 · Scrap Swarm》展示了如何在不依赖任何外部精灵表(Sprite Sheets)、骨骼插件(Spine/DragonBones)或音频文件的前提下,仅通过纯数学几何与分层关节状态机,构建具备热血机甲番剧演出张力的 2D 竞技场动作游戏。
2. 五机多关节程序化骨骼树与番剧级演出 (src/game/hangar.ts & src/scenes/GameScene.ts)
2.1 主角机 R-17「锻火拳」(Greenbrook Highway Maintainer)
R-17 原为绿溪镇自主公路维护机,经机械师莫琳改装后代表绿溪出战铁冠竞技场。其骨骼由 6 层程序化几何节点构成:
- 双承重轮差速履带底盘:随移动速度实时滚动履带齿,转向时产生底盘差速倾角;
- 呼吸式减震躯干与蒸汽排阀:待机时呈现低频液压呼吸起伏,冲刺时前倾拉出流线夹角;
- 右臂三段液压爆铆拳炮(Hydraulic Rivet Cannon):每次射击触发活塞后坐力回缩、枪口电弧闪光,并沿抛物线抛出旋转黄铜弹壳(Shell Ejection);
- 左臂旋转震磁护盾线圈(Magnetic Shield Coil):持续自转并在格挡/磁暴震击时扩散环形电磁波纹;
- 双肩觉醒散热翼(Overdrive Radiator Fins):开启炉心觉醒时双肩装甲外翻展开,喷射金青双色等离子斗气;
- 炉心冲刺残影(Core Dash Afterimages):按下
Space冲刺时沿轨迹生成多层半透明金青分身残影,兼具短暂无敌帧与穿过敌群的磁暴震击伤害。
2.2 四类敌方改造机与冠军 Boss「铁冠·赫克托」
- 赤砂牙轮 (Scuttler):六足昆虫式交错步态 + 前置偏置高速切割锯轮火花;
- 铁壁角斗机 (Brute):四轮重装压缩底盘 + 双侧外伸液压震地撑臂 + 蓄力琥珀预警光圈 + 半血黑烟裂纹;
- 电弧浮游炮 (Zapper):三旋翼反重力环 + 高压特斯拉电弧球 + 狙击激光锁定线;
- 冠军机「铁冠·赫克托」(Iron-Crown Hector):四履带移动堡垒底盘 + 双臂巨型回旋切割锯 + 胸口铁冠限位锁具。进入 P2/P3 阶段后装甲逐层崩裂,最终锁具碎裂露出内部的灾变期工业救援核心。
2.3 番剧横向切入(Anime Cut-in)与黑白冲击帧(Impact Frames)
- 横向切入特写(Cut-in Banner):当玩家触发炉心觉醒(
Q)、完成场地维修棚护卫事件或 Boss 进入阶段转换时,屏幕横向划过高速斜向速度线横幅与驾驶员/机甲特写铭牌; - 黑白冲击帧(Impact Frame):在重击暴击与赫克托胸口铁冠锁碎裂瞬间,画面切入高反差黑白放射闪光帧(2–4 帧瞬态反转),强化力量爆发感。
3. 场地互动玩法与三幕反转无线电剧场 (src/game/story.ts)
3.1 场地中间事件:移动维修棚护卫(Mobile Repair Shed Defense)
第 2 波战斗中段,绿溪移动维修棚驶入竞技场中央。玩家需在限定时间内护卫维修棚免受「铁壁角斗机」与「赤砂牙轮」拆毁;护卫成功可获得全场装甲纳米修复与炉心超载增益,并解锁关键剧情线索。
3.2 三幕无线电剧场反转(Radio Comms Narrative)
- 第一幕(绿溪出战):解说员雷克斯煽动观众狂热,莫琳通过加密信道指导 R-17 测试改装爆铆枪与炉心冲刺。
- 第二幕(焊死封盖的真相):莫琳在回收被击毁的赤砂牙轮与维修棚扫描数据后震惊地发现——竞技场中悍不畏死的“狂暴敌机”,其检修舱盖与求救信标全部被铁冠联盟人为焊死。
- 第三幕(赫克托救援日志解密):迎战冠军机「铁冠·赫克托」时,R-17 收到赫克托底层溢出的断续摩尔斯码。原来赫克托本是旧时代重型灾害救援主机,被铁冠加装强制战斗锁具充当票房机器。R-17 最终以锻火拳精准击碎其胸口铁冠锁具而非摧毁炉心,助其重获自由并向全废土广播开源校准协议。
4. 60Hz 确定性竞技场与自动化验证 Harness (src/game/simulation.ts & src/dev/api.ts)
- 纯函数式仿真内核:所有运动学、碰撞检测、刷怪波次、冲刺冷却、维修棚护卫计时与 Boss 阶段状态机均封装在零 DOM 依赖的
Simulation模块中,由固定种子 PRNG 驱动。 - 测试与演示探针(
window.__gameTest):支持一键切换自动战斗 Bot(setBot(true))、触发炉心冲刺(triggerDash())、跳转波次与读取实时遥测,确保 Playwright E2E 测试在无头浏览器中 100% 稳定复现全流程通关。