- 激光持续时间从40帧改为300帧(5秒),匹配用户要求的'持续5秒后消退' - 大激光绘制改用fill实心风格: - 上半圆fill:圆心(bm.x1, bm.y1+pR),顶部=炮口bm.y1,底部直径=bm.y1+pR - 矩形fillRect:从半圆底部bm.y1+pR开始向下,宽度=直径bm.w,和半圆完美对接 - 白边fillRect:窄矩形在主体内 - 彻底去掉stroke描边弧线,消除弧线描边在不同位置的展开差异导致的缝隙 |
||
|---|---|---|
| .. | ||
| css | ||
| demo | ||
| js | ||
| server | ||
| .env.example | ||
| DEPLOY.md | ||
| index.html | ||
| package.json | ||
| README.md | ||
星尘突击队 STAR RAID
像素风 Roguelike 竖版射击游戏。原单文件版本已按功能拆分为多文件结构。
运行方式
浏览器直接打开 index.html 即可游玩;或启动本地服务器:
cd star-raid
python3 -m http.server 8000
# 访问 http://localhost:8000/
文件结构
star-raid/
├── index.html # 页面结构:画布 + 各界面覆盖层(标题/机库/图鉴/结算等)
├── css/
│ └── style.css # 全部样式:像素风 UI、覆盖层、卡片、触屏按钮
└── js/
├── config.js # 工具函数、存档读写、平衡数值总表
├── audio.js # 程序化音频:音效合成 + 背景音乐
├── sprites.js # 像素精灵工坊:战机/敌机/弹幕/道具/图标绘制
├── data.js # 静态数据:机体、21 主武器、18 副武器、僚机、被动
├── core.js # 全局状态、输入、玩家移动、武器引擎、爆炸特效
├── enemies.js # 敌人图鉴、敌机行为、突变词缀、波次生成、Boss 战
├── combat.js # 战斗结算、子弹更新、碰撞检测、经验与三选一
├── render.js # 背景渲染、Boss 像素绘制、世界渲染、主循环
└── ui.js # 界面流转、机库商店、图鉴、实战模拟演示
加载顺序说明
JS 模块通过全局作用域共享状态,需按 index.html 中的顺序加载:
config → audio → sprites → data → core → enemies → combat → render → ui
操作
- 移动:WASD / 方向键 / 触屏拖动
- 射击:全自动
- SHIFT:精密移动 · P:暂停 · M:音乐开关