starraid/AGENTS.md

4.1 KiB
Raw Blame History

AGENTS.md — Star Raid 工作区

这个工作区只做一个项目Star Raid像素风竖版弹幕射击游戏 无关项目已移至 ~/Desktop/测试1,不要在这里新建其他项目的文件。

项目概述

  • 纯 HTML5 Canvas + 原生 JavaScript无构建、无依赖、无框架
  • 240×320 像素画布,竖版弹幕射击(主武器/副武器/僚机/Boss 战/Boss Rush 模式)
  • 游戏本体在 star-raid/ 子目录

常用命令

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/)沉淀重要约定,发现新约定主动更新