starraid/AGENTS.md

79 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# AGENTS.md — Star Raid 工作区
**这个工作区只做一个项目Star Raid像素风竖版弹幕射击游戏。** 无关项目已移至 `~/Desktop/测试1`,不要在这里新建其他项目的文件。
## 项目概述
- 纯 HTML5 Canvas + 原生 JavaScript**无构建、无依赖、无框架**
- 240×320 像素画布,竖版弹幕射击(主武器/副武器/僚机/Boss 战/Boss Rush 模式)
- 游戏本体在 `star-raid/` 子目录
## 常用命令
```bash
cd star-raid
# 语法检查(每次改完 JS 必须跑)
for f in js/*.js; do node --check "$f" || echo "FAIL $f"; done
# 本地运行(用户试玩用)
python3 -m http.server 8643 # 然后访问 http://localhost:8643
# 注意8642 端口有浏览器缓存污染,固定用 8643
# Git仓库根 = 工作区根目录,游戏在子目录)
git add -A && git commit -m "提交信息"
```
## 验证规则(最高优先级,违反会被用户骂)
1. **禁止运行游戏测试视觉效果**——包括 playwright 截图、浏览器数据断言。视觉和手感全部由用户亲自验收。Agent 只做:`node --check` 语法检查 + git 提交。
2. 交付时必须诚实标注验证状态:"仅语法检查通过,未运行验证"。
3. 完成了操作 ≠ 任务完成,未经验证不得说"修复了/完成了"。
## 项目结构
```
star-raid/
├── index.html # 入口 + 全部覆盖层 UI 结构
├── css/style.css # 全部样式(像素风 UI 变量配色)
├── js/
│ ├── config.js # BAL 平衡参数、常量
│ ├── data.js # WEAPONS/SUBS/DRONES 装备数据表
│ ├── core.js # 游戏状态 G、发射逻辑、explodeFx 爆炸特效库
│ ├── combat.js # 子弹运动/碰撞/光束判定/zones 区域效果
│ ├── enemies.js # ENEMIES 杂兵表、BOSSES 表、bossMain/bossMinor 攻击库
│ ├── render.js # 世界渲染drawBoss 分支调度、血条、子弹、zones
│ ├── boss_art.js # Boss 美术库drawProgenitor/drawAssault/drawPiano/drawUsurper/drawSaucer
│ ├── sprites.js # 像素字符画 bake 系统、SPR 精灵表、BHALO 弹光晕
│ ├── audio.js # SFX 音效WebAudio 合成)
│ └── ui.js # 菜单/图鉴/rush 选择/老虎机/结算
├── demo/ # 动作设计 demo如 tentacle-sweep.html 触手扫击)
└── research/ # Boss 参考图与调研(不进 git
```
## 代码规范
- 单文件不超过 500 行;新增大功能先考虑拆模块
- 严格 `"use strict"`全局函数跨文件直接调用无模块系统script 标签顺序加载)
- 编辑技巧:`edit_file` 的 old_string 必须先 grep/sed 读原文确认(含中文注释易有不可见差异);整批替换任一失败则全部不写入
## 设计禁忌(用户铁律)
1. **AoE 区域效果禁止画圆形区域**——用纯粒子、不规则雾团、电弧(钢琴蓄力圈是唯一批准的例外)
2. **禁止恢复已删除的武器**:弹跳光碟、钻头弹、感应水雷、全息诱饵、圣水领域
3. **武器命中禁止屏幕白闪**(玩家受伤/Boss 死亡的闪光保留)
4. 子弹差异化是最高优先级:颜色/形状/运动/拖尾/命中效果五轴都要拉开
5. Boss 变形=同一几何体连续演化(裂开/展开/伸长/滑开露出),禁止部件凭空出现;俯视图禁止画立体尖塔
## Boss 设计标准
设计或修改任何 Boss 前,必须读取项目记忆 `.astrion/memory/boss_design_standard.md`(视觉公式/攻击节奏/判定同源原则/小兵差异化)。触手扫击类动作设计参考 `star-raid/demo/tentacle-sweep.html` 的"前摇→释放→后摇"三段式。
核心原则一句话:**视觉 = 判定**(碰撞坐标每帧只算一份,渲染与判定同源)。
## 工作流约定
- 大改动先讨论方案再动手;视觉效果由用户验收后再迭代
- 每完成一个逻辑单元立即 git 提交(提交信息写清改了什么+为什么)
- 项目记忆(`.astrion/memory/`)沉淀重要约定,发现新约定主动更新