浏览器端的即时舰队对战游戏 —— 取材自谷川流《凉宫春日》系列中 SOS 团自制的同名游戏《射手座之日》。 强调「看得见才能打」的情报博弈与「集中 / 分散」的编队取舍,而非数值碾压。
▶ 在线游玩:https://star.haruyuki.cn · 公测版 v0.1
你指挥一支三舰编队(1 主舰 + 2 副舰)在星海中迎战对手。通过走位、分离、技能与侦察压制,歼灭对方全部舰船(含主舰与副舰)即获胜。视野远小于射程,你常常看不见就被打、也能吊在敌人视野外输出——情报是获胜的关键。
- 单人 vs AI:四档难度(简单 / 普通 / 困难 / 极限)。难度同时调整敌方数值、AI 反应速度与战术风格;极限难度的 AI 会智能集火残血。AI 通过大量对抗模拟逐项调校。
- 在线对战:基于 WebSocket 的实时 PvP,支持创建公开房 / 私人房 / 加入房 / AI 训练房。
- 7 名角色:凉宫春日、阿虚、长门有希、古泉一树、朝比奈实玖瑠、朝仓凉子、鹤屋——每名角色在「主舰位」与「副舰位」拥有不同的技能(主动 / 被动)。
- 机制深度:
- 视野 ≪ 射程 —— 派侦察机开图、主力吊在敌方视野外输出;侦察机还能吸引火力。
- 火力与朝向 —— 侧舷火力 ×1.5、船尾不开火;从敌方船尾命中造成 ×1.2 尾击(阿虚旗舰为各方向均匀的 ×1.5 火力)。
- 分离取舍 —— 不分离时编队可分摊伤害、火力集中、共享能量池;分离后开火 ×1.2、获得独立视野、可释放分舰技、走位更灵活,但更脆弱、无法共同承伤、易被各个击破。
- 碰撞与阻挡 —— 舰船有碰撞体积,相撞会减速;舰船会挡住中途的子弹,替后方承受伤害。
- 能量 —— 提高推进功率与释放技能都会消耗能量,能量自动回复。
- 新手教程:首次游玩自动触发的分步引导,手把手带你上手。
- 复古皮装界面:以「皮装星历名鉴」为主题的复古仿真 UI;角色选择是翻开一本古书。
| 操作 | 作用 |
|---|---|
| 右键单击战场 | 创建航线目标(拖拽控制点微调曲线) |
| 左键单击空白 | 在 3×3 地图中选择战区 |
1 / 2 / 3 |
切换 主舰 / 副一 / 副二 |
C / V |
旗舰技 / 分舰技 |
X / Z |
侦察 / 自动侦察 |
B · 滚轮 |
急刹 · 缩放镜头 |
移动端为触控布局,详见游戏内「玩法说明」。
需要 Node.js 20+。
npm install
npm run dev # 开发服务器(Vite)
npm run build # 生产构建 → dist/
npm run preview # 预览生产构建
npm run start:server # 启动联机 WebSocket 服务端
npm run test:core # 核心战斗逻辑校验默认按根路径构建;部署到子路径时用 VITE_BASE=/子路径/ npm run build。
- Vite 单页应用:单一
index.html+ History 路由(src/router.js),干净无.html后缀的 URL。每个路由是一个可挂载模块(mount(root)→ 返回unmount()),切换路由时统一停渲染循环 / 断 WebSocket / 移除监听。 - 规则内核(单一事实来源):
shared/game-core.js统一所有游戏规则(舰船运动、分离、技能、视野、AI、战斗结算)。单人、在线客户端与服务端全部由它驱动,保证前后端逻辑一致。 - 联机服务端:
server/server.js(基于ws),与内核同源运行权威模拟。 - 渲染:Canvas 2D,按设备像素绘制,矢量线条像素级清晰。
index.html SPA 外壳
src/
main.js 装载样式 + 注册路由 + 启动
router.js History 路由
menu.js 主菜单(首页)
solo.js 单人对战
online.js 在线对战客户端
character-select.js 翻书式角色选择
tutorial.js 新手引导教程
guide.js / credits.js / profile.js …
shared/game-core.js 游戏规则内核(前后端共享)
server/server.js 联机 WebSocket 服务端
scripts/verify-core.mjs 核心逻辑校验
- 画师:橙海
- 开发:春日しゅぎ
- 设计:春日しゅぎ · syd · 可能是寂寞
- 出品:凉宫春日应援团超能力者组 · 凉宫春日应援团开发组
本作为非商业同人作品,取材自谷川流《凉宫春日》系列;角色、世界观与《射手座之日》设定的版权归原作者及相关版权方所有,本项目与版权方无任何关联。仅供学习交流与粉丝同好娱乐使用。