《星云突击》(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 被一条横幅挡住操作区的情况。
几条实用的上手建议
- 别站中线。 自动开火意味着输出自动跟着机身走,最优解是贴着左右边界游走,把弹幕引到一侧再横穿。
- 优先护盾,其次速射。 3 条命很薄,护盾能换一次试错;打 Boss 时速射对 DPS 的提升最直接。
- 堡垒要早打。 它慢但会还击,放久了和快速飞镖叠在一起会形成交叉火力。
- 看到红线就横移。 棱镜激光预警约 0.9 秒,判定是纵向长条,横向挪开一个机身位就够;深渊则会把你往前拽,别贴太近。
- 波数比分数更值钱。 过波有
50×波数、Boss 有200×波数加成,活得久比贪几个 500 分道具划算。
小结
《星云突击》没有剧情、没有养成、没有内购,就是一套打磨得挺干净的「走位 + 火力 Buff + 波次 Boss」循环:上手 10 秒,想破纪录得琢磨每五波的读招。技术上它是本站少见的 3D 尝试,从 2D 平面跨到带雾、带视差、带惯性机动的三维空间,同时又保持了单页即开即玩、手机可玩的轻量。
开玩:tech.iotcomeon.com/game/space-strike-3d/ 打完记得回来看能不能破自己的最高分。