星云突击 · Nebula Strike 3D:打开网页就能玩的 3D 太空射击,每五波一个 Boss

《星云突击》(Nebula Strike · 3D)是本站上线的一款网页 3D 太空射击小游戏:不用注册、不用下载、不用装插件,点开链接按一下「开始游戏」就能打。它把经典纵版打飞机的规则搬进了 Three.js 的三维空间里——三层视差星空向身后掠过,敌机从远方雾中压近,飞船带惯性地左右机动,每五波还会撞上一个有血条、会变形、会分阶段发弹幕的 Boss。

直接开玩:https://tech.iotcomeon.com/game/space-strike-3d/(电脑、手机浏览器都支持)

一分钟上手:只管走位,开火是自动的

这游戏刻意砍掉了「按射击键」这件事。飞船自动开火,玩家唯一要做的就是把飞机放到安全又打得中的位置。所以它的核心不是手速,是走位预判。

  • 键盘:W A S D 或方向键移动,在一个横向 ±28、纵向有限的战场内自由机动;P 暂停/继续,结算后 R 直接重开一局。
  • 手机/平板:手指在屏幕上拖动即可,飞船会朝触点方向飞;同样是自动开火。触屏映射用射线投射到地面平面算出来,横屏竖屏都能玩。
  • 移动手感:不是「按一下走一格」,而是加速度 + 阻尼 + 速度上限,机身会随横向速度侧倾、随前后速度俯仰,尾部喷焰长度还会随机抖动,惯性感很明确。
  • 初始资源:3 条命,中弹后约 1.6 秒无敌并闪烁提示;生命归零即结算。

HUD 四角分别显示当前分数、历史最高分、当前波次与剩余敌机,底部是三格生命条;拿了 Buff 时左上方会出现带倒计时的彩色标签,Boss 出场时顶部换成红色血条。

三类杂兵:速度、耐久、还击,三者不可兼得

普通波次里有三种几何体敌机,颜色即辨识度:

形态 耐久 速度 击毁得分 特点
红色八面体「飞镖」 1 16(最快) 100 一发就碎,主打成群突脸
橙色方块「球舰」 3 9 200 要顶住三发,逼你固定输出路线
紫色二十面体「堡垒」 5 5(最慢) 500 会向玩家还击,第 3 波起才出现

敌机模型都叠了一层半透明白色线框,撞碎时按本体颜色炸开一簇粒子。「堡垒」是第一个真正改变打法的单位:它慢、耐打、还射子弹,你不能一直待在中线平推。

波次:越往后越密,清完还有奖励分

第 n 波会生成 4 + 1.8n 架敌机(向下取整),出生时间随波次压缩——间隔从 1.1 秒逐步缩短到约 0.4 秒下限,同时混入随机抖动,不会出现整齐到能背板的固定节奏。第 2 波开始有约 28% 概率刷球舰,第 3 波开始约 10% 概率刷堡垒。

全清一波立刻结算 50 × 波数 的过波奖励,1.2 秒后进入下一波。每 5 波(第 5、10、15……波)不出杂兵,直接上 Boss。 分数与波数会一起滚进结算面板,最高分用浏览器 localStorage 存在本地,刷新页面也不丢,破纪录时结算页会亮起「★ 新纪录 ★」。

三个 Boss:铁砧冲脸、棱镜激光、深渊拉扯

Boss 基础血量 击杀分 主要手段
铁砧(橙红) 40 3000 横向摆动 + 扇形弹幕;半血后进入二阶段,周期性冲刺突进
棱镜(青蓝) 70 6000 先亮 0.9 秒红色预警线,再放贯穿全场的激光;二阶段变双段激光并召唤飞镖
深渊(紫色) 100 12000 12~16 发环形弹幕、周期召唤球舰,还会把飞船往自己方向「引力拉扯」;三阶段

三个 Boss 按「铁砧 → 棱镜 → 深渊」循环出场,而且每打掉一次,下一次同类 Boss 血量就增加 50%(第 n 次为 1 + 0.5×(n−1) 倍),等级显示在血条上方。血浆比例还会驱动阶段切换:普通 Boss 过半血进二阶段,深渊则按 66%/33% 分成三段,弹幕数量与频率逐段抬升。打倒 Boss 除了固有分数,还会追加 200 × 波数 奖励,并必定掉落 3 个道具。

设计上比较讲究的一点是「预警」:棱镜的激光不是直接糊脸,而是先给一条半透明红线,留出不到一秒的横移窗口;铁砧二阶段的突进也有节奏可循。它考验的是读招,不是反应极限。

五种道具:8% 掉落,且会主动吸附

击毁普通敌机有约 8% 概率掉一个旋转的八面体,掉落后会缓缓向屏幕下方飘;飞船进入一定范围,道具会自动被吸过来,不用为了捡它硬凑到弹幕里。五种效果:

  • 散射(蓝,15 秒):一次打出三发扇形弹,清群效率翻倍。
  • 速射(黄,10 秒):射击间隔从 0.16 秒缩到 0.08 秒,打 Boss 时最实在。
  • 护盾(绿,6 秒):抵挡一次伤害并附带短暂无敌,是唯一能硬吃一发的手段。
  • 修复(红,瞬发):回 1 条命;生命已满则折算 +300 分,不浪费。
  • 奖励(紫,瞬发):直接 +500 分。

散射与速射可以叠加,护盾与它们互不冲突;三个增益同时挂着时,屏幕左上角会并排显示三枚倒计时标签。

画面与实现:一个 HTML + 一个 three.min.js

整个游戏只有两个文件:index.html(约 49 KB,含全部逻辑与样式)和同目录下的 three.min.js(约 603 KB,本地存放,不依赖 CDN)。打开页面即加载,断网也能从本地缓存继续跑。

  • 三维场景:62° 透视相机斜俯视跟随飞船,指数雾把远处敌机淡出,三层不同速度的星点(500/350/120 颗)营造纵深,地面网格线给空间参照。
  • 材质与特效:金属度/粗糙度材质 + 环境光/平行光/引擎点光源;爆炸是 400 个预分配粒子的加色混合系统,配合相机震动、命中放大闪白、Boss 死亡的多段连环爆炸。
  • 零音频资源:射击、爆炸、受伤、过波、Boss 出场/倒下、激光、吃道具全部由 WebAudio 实时合成(振荡器 + 噪声缓冲 + 低通滤波),没有一帧 mp3。
  • 性能取向:子弹 60、敌弹 40、敌机 48、道具 20、粒子 400 全部走对象池复用;渲染开启抗锯齿并把设备像素比上限锁在 2,避免高分屏手机上把 GPU 打满;帧间隔做了 50ms 上限截断,切回标签页不会出现瞬移。
  • 状态完整:标题页/游戏中/暂停/结算四态,暂停会冻结逻辑,结算面板显示本局得分、历史最高、坚持到第几波,并支持一键再来一局。

顺带一提,广告只挂在开始面板与结算面板的卡片里,游戏进行中整块面板是隐藏的——不会出现打着 Boss 被一条横幅挡住操作区的情况。

几条实用的上手建议

  1. 别站中线。 自动开火意味着输出自动跟着机身走,最优解是贴着左右边界游走,把弹幕引到一侧再横穿。
  2. 优先护盾,其次速射。 3 条命很薄,护盾能换一次试错;打 Boss 时速射对 DPS 的提升最直接。
  3. 堡垒要早打。 它慢但会还击,放久了和快速飞镖叠在一起会形成交叉火力。
  4. 看到红线就横移。 棱镜激光预警约 0.9 秒,判定是纵向长条,横向挪开一个机身位就够;深渊则会把你往前拽,别贴太近。
  5. 波数比分数更值钱。 过波有 50×波数、Boss 有 200×波数 加成,活得久比贪几个 500 分道具划算。

小结

《星云突击》没有剧情、没有养成、没有内购,就是一套打磨得挺干净的「走位 + 火力 Buff + 波次 Boss」循环:上手 10 秒,想破纪录得琢磨每五波的读招。技术上它是本站少见的 3D 尝试,从 2D 平面跨到带雾、带视差、带惯性机动的三维空间,同时又保持了单页即开即玩、手机可玩的轻量。

开玩:tech.iotcomeon.com/game/space-strike-3d/ 打完记得回来看能不能破自己的最高分。