一、项目概览
| 项目 | 说明 |
|---|
| 游戏名称 | 神经肉鸡大作战 (Neuro Chicken) |
| 类型 | Boss战 · 2D动作 · 梗游戏 |
| 技术形态 | 单HTML文件(零依赖,即开即玩) |
| 目标平台 | PC浏览器 + 手机触屏(横屏) |
| 核心体验 | 玩家与“洋葱学术系统”战斗,3条命,Boss 10格血 |
二、文件结构
单一 HTML 文件(约 600 行)
- HTML 结构(街机框体 + 触屏按钮)
- CSS 样式(霓虹主题 + 横屏适配)
- JavaScript 游戏逻辑
三、物理参数(手感核心)
| 参数 | 值 | 说明 |
|---|
GRAVITY | 0.7 | 重力加速度,下落干脆 |
JUMP_SPEED | -11 | 起跳速度,跳跃低矮精准 |
MOVE_SPEED | 4 | 水平移动速度 |
MAX_FALL | 12 | 最大下落速度 |
ATTACK_COOLDOWN | 60帧(1秒) | 攻击冷却 |
四、滑铲系统(Zero风格)
| 参数 | 值 | 说明 |
|---|
SLIDE_DURATION | 20帧(≈0.33秒) | 滑铲持续帧数 |
SLIDE_DISTANCE | 120px | 固定位移长度 |
SLIDE_END_LAG | 8帧(≈0.13秒) | 起身硬直 |
速度曲线:ease-out(先快后慢),模拟推进加速度
特性:
- 滑铲期间无敌(不扣血)
- 结束后有起身硬直(手感反馈,非UI冷却)
- 只能在地面使用
五、角色系统
玩家(Player)
| 属性 | 类型 | 说明 |
|---|
x, y | Number | 位置坐标 |
w, h | Number | 碰撞箱尺寸(28×36) |
currentH | Number | 动态高度(下蹲/滑铲时变化) |
hp | Number | 当前生命值(最大3格) |
facing | Number | 朝向(1=右,-1=左) |
onGround | Boolean | 是否在地面 |
isDucking | Boolean | 是否下蹲 |
isSliding | Boolean | 是否滑铲中 |
slideEndLag | Number | 起身硬直倒计时 |
invincible | Number | 无敌帧倒计时 |
Boss(洋葱学术系统)
| 属性 | 类型 | 说明 |
|---|
x, y | Number | 位置坐标 |
w, h | Number | 碰撞箱尺寸(72×80) |
hp | Number | 当前生命值(最大10格) |
drawY | Number | 实际绘制Y(含浮动偏移) |
hoverPhase | Number | 浮动相位 |
hoverSpeed | Number | 浮动速度(0.03) |
hoverAmplitude | Number | 浮动幅度(60px) |
bullets | Array | 子弹数组 |
六、Boss攻击模式
| 攻击 | 触发条件 | 描述 |
|---|
| 扇形弹幕 | 每100帧 | 6颗「?」弹幕呈扇形射出 |
| 追踪弹 | 每200帧 | 1颗「❓」追踪弹缓慢跟踪玩家 |
| 焊接攻击 | 每480帧 | 4根焊条从屏幕上方坠落,落地后形成持续1秒的焊渣 |
七、玩家操作
PC键盘
| 按键 | 动作 |
|---|
| ← / → | 左右移动 |
| ↑ / X / 空格 | 跳跃 |
| ↓ / S | 下蹲 |
| Z | 滑铲(地面) |
| C | 攻击(飞行道具) |
| R | 重置游戏 |
手机触屏
| 按钮 | 动作 |
|---|
| 左摇杆 | 移动 + 下蹲(下拉) |
| ⬇ | 滑铲 |
| ⬆ | 跳跃 |
| ⚔️ | 攻击 |
八、核心交互逻辑
| 交互 | 效果 |
|---|
| 攻击命中Boss | Boss扣1血,闪白,粒子爆炸 |
| Boss子弹命中玩家 | 玩家扣1血,闪白,无敌帧 |
| 滑铲穿过Boss | 无伤害,纯位移 |
| 下蹲 | 角色变矮,不可移动 |
| 死亡 | 弹窗显示「🍗 你被烤熟了」 |
| Boss击败 | 弹窗显示「🎉 你打赢了系统!」 |
九、渲染与视觉
| 元素 | 实现方式 |
|---|
| 街机框体 | CSS霓虹边框 + LED灯效 |
| CRT效果 | CSS扫描线 + 暗角遮罩 |
| 玩家 | Canvas绘制的方块人(带ZERO风格光剑) |
| Boss | Canvas绘制的多层洋葱(渐变圆) |
| 子弹 | Canvas绘制的圆形 + 文字标签 |
| 粒子系统 | 爆炸/火花/焊渣粒子 |
| 屏幕震动 | 命中时随机偏移画布 |
分辨率:854 × 480(固定画布尺寸,CSS自适应)
十、数据流向
玩家输入(键盘/触屏)
→ update() 更新逻辑
- 玩家移动/跳跃/下蹲/滑铲
- 物理引擎(重力/碰撞/速度)
- Boss AI(攻击/子弹/浮动)
- 碰撞检测(子弹/角色)
- 状态管理(血量/无敌/冷却)
→ draw() 绘制
- 背景/网格/平台
- Boss/玩家/子弹
- 粒子特效
- HUD(血条/状态)
→ requestAnimationFrame 循环(60fps)
十一、依赖清单
| 依赖 | 版本 | 用途 |
|---|
| HTML5 Canvas | 原生 | 游戏渲染 |
| Web Audio API | 原生 | 8-bit音效合成 |
| CSS3 | 原生 | 样式与动画 |
| JavaScript (ES6) | 原生 | 游戏逻辑 |
外部依赖:无(零依赖,完全自包含)
十二、当前版本状态
已完成
- 玩家移动/跳跃/下蹲/滑铲(Zero风格手感)
- Boss AI(3种攻击模式)
- 碰撞检测(子弹/角色)
- 血量系统(玩家3格,Boss10格)
- 死亡/胜利闭环
- 街机视觉框体
- PC键盘 + 手机触屏支持
- 横屏适配
待开发(按优先级)
- 雪碧图换皮(替换当前绘制的方块图形)
- 烤鸡结局动画(输赢都变烤鸡)
- 多阶段转场(Boss半血变色、加速)
- 新攻击模式(封装牢笼 / 自指镜像)
十三、参数调优记录
| 参数 | 初始值 | 当前值 | 调优原因 |
|---|
SLIDE_DISTANCE | 80 | 120 | 手感更爽,能穿过Boss |
GRAVITY | 0.6 | 0.7 | 追求Zero重手感 |
JUMP_SPEED | -10 | -11 | 匹配重手感跳跃高度 |
文档版本:v1.0 | 更新日期:2026-06-20