当前版本:2.0(工程版本 2.0.0)。包含 2026-09-08 至 09-09 的单手操控、战斗、视觉、超级武器与性能改进。
面向微信小游戏的竖屏单手霓虹街机射击游戏。使用 TypeScript、自研 WebGL 1 矢量渲染器、离屏 Canvas 文字和 WebAudio,不依赖 Cocos 或其他运行时游戏引擎。
- 标题/结算页选择「经典生存」或「限时冲分」;键盘 1 / 2 直接开始。限时模式每局 3 分钟,无限复活,死亡仍损失倍率和时间;两种模式独立保存最高分。
- 竖屏固定单手操作,不提供双摇杆切换;旧版保存的双摇杆偏好不再生效。横屏保留左移右瞄。
- 单手操作时,手机下半屏单指拖动:移动并沿拖动方向持续射击;回中保持最后射击方向,松手停火。发射时提供小角度瞄准辅助,普通子弹飞行中不追踪。
- 浏览器:点击或 Enter 开始;竖屏 WASD 移动及定向射击,横屏 WASD 移动、IJKL 独立射击;P / Escape 暂停,触摸或 P 恢复。
- 七类敌人拥有不同的运动方式和空心几何剪影。中后期每四批出现一次同类侧翼编队,带 0.7 秒预告;自然生成的黑洞同时最多三个。绿色织行体躲弹,粉色旋翼体死亡后分裂成三只小追踪体,长蛇身体挡弹且接触危险、只有头部受伤,黑洞吞敌成长并在过载时爆发。
- 击杀掉落倍率晶体,靠近磁吸收集,每六颗增加一级倍率,上限 ×25;死亡清零倍率。每收集 48 颗还会随机召唤一次超级武器,左侧竖条显示进度;满格只存一次,等待现有支援与冷却结束后自动触发,死亡保留本局充能,重开清零。母舰和连锁清场不掉晶体、不触发分裂。
- 经典生存有三条初始生命,每 75,000 分奖励生命;两种模式按得分升级普通火力。敌人随时间增多、提速,后期穿插突袭和短暂喘息。
- 场上最多一枚八次命中的超级补给,首次 36–44 秒出现;六种武器互斥,结束后至少空档 24 秒。随机池每八枚含一枚 4 秒导弹,两枚护盾、两枚过载,以及双僚机、母舰、连锁爆破各一枚;旋翼敌人不再赠送导弹。
- 母舰以半屏体型进行 3 秒十炮齐射并清场;双僚机持续 8 秒,过载持续 6 秒。电弧护盾持续至多 8 秒,可挡一次碰撞,破裂后留 1 秒脱离时间。
- 五首内置背景音乐随机起播、完整播放后轮换,生成节奏与音乐节拍同步。Web 预览使用合成音乐;微信音乐通过分包加载。
- 战机拖出金白色喷流,转弯时保留弯曲路径,尾部逐渐散成橙色火星;停下后自然消散,暂停时冻结。尾焰独立复用 192 个粒子,画质档位调整发射密度。
- 欠阻尼动态网格响应爆炸、黑洞、敌人、玩家和弹流。细网格由现有节点插值,不增加弹簧模拟节点。
- 高画质将发光物体提取到 1/4 尺寸纹理,双向高斯模糊后叠加柔和光晕;中低画质关闭这一步,保留核心轮廓。
- 发光粒子、弹道和外轮廓使用加法混合;实体轮廓、黑洞暗核和 HUD 保持正常遮挡。战场每帧一次顶点上传,按连续混合区间绘制。
- 圆环/圆盘复用单位圆坐标,粒子使用固定 640 个对象的池;敌人及蛇节碰撞代理、顶点缓冲和绘制批次复用存储。
- 子弹使用扫掠碰撞,按飞行路径上的第一个交点结算;玩家移动使用解析阻尼积分,减少不同刷新率造成的手感差异。
- 三档自适应画质保留危险预告和核心轮廓,在负载缓解后可恢复。持续掉帧时从平均 18.5ms 开始降低效果;画质恢复使用独立稳定时段。渲染保持一个 CSS/逻辑像素,避免直接按手机 DPR 平方增加着色成本。
- 切后台和 WebGL 丢失时暂停,恢复后需主动继续。GPU 资源和 HUD 纹理可重建,最高分在后台/结算时写入存储。
最新单手操作修正、尾焰及视频参考验证见 视频改进记录。此前操控、射速和画质验证见 第三轮记录,限时模式与光晕见 第二轮记录,此前战斗/性能修复见 第一轮记录。旧版调研见 Geometry Wars 精髓,视觉规范见 DESIGN.md。
2.0 更新说明、审核体验路径与本版截图见 发布记录。
最新战机轮廓修复、半屏母舰、电弧护盾与收集充能见本轮记录。此前渐进难度、稀有导弹、母舰和一次护盾见方案与实施验证。超级补给现为单枚轮换,存在明确空档。
最新命中、爆裂、声音与镜头反馈见打击反馈优化记录,包含浏览器和微信模拟器验证。
需要支持 Node 内置 TypeScript 类型擦除的 Node 版本来运行现有测试;本轮使用 Node 26.7.0。
npm install
npm test
npm run check
npm run build:wechat微信开发者工具导入 build/wechat-2-0-0。浏览器预览建议通过本地 HTTP 服务运行:
python3 -m http.server 8765 --bind 127.0.0.1 --directory build/web-preview打开 浏览器预览。?demo=play 自动演示战斗,?demo=missile 检查导弹美术;两者仅在 Web 预览生效。
内置标题字体为未修改的「钉钉进步体」,许可见 fonts/LICENSE-NOTE.txt。