Files
rthythm_archor_game/docs/Level1Design.md
T
2026-07-06 22:59:47 -07:00

12 KiB
Raw Blame History

第一关关卡设计(Level 1 Design

本文档承接《Anchor策划书1.0》(docs/AnchorV1.0.md,缩写 §)与《关卡设计指南》。 §7 / §8 两节为指南原文;其余章节是落地到本项目的关卡与行为设计说明。 实现入口:scenes/stage/level_director.gd(出怪导演)、scenes/enemies/minion_behavior.gd(小怪状态机)、scenes/stage/boss_room_gate.gdBoss 房门)。


1. 关卡布局

沿用 rthythm_archor_game_player 参考工程的视觉基线:Stage 使用跟随相机,Camera2D 初始位置为 (2047, 395),缩放为 (1.25, 1.25);玩家、怪物、Boss 的地面锚点统一在 y = 560。关卡迁移只调整出怪方式、门线和战斗流程,不改变角色、Boss、怪物、背景、HUD 的相对大小与原有镜头比例。

位置 x 坐标 说明
竞技场左边界 1120 巡逻 / 后撤永不越界
左侧刷新点 1420 增援入场起点,使用 LevelDirector.left_edge_x
玩家出生点 1180 2026-07-05 new2:改为地图偏左,开场向右推进约 1000px 遇敌
战斗区域中心 2047 增援入场目标的基准
阶段一近战怪预置点 2235 编辑器摆放,无刷新动画
Boss 初始锚点 2520 保留参考工程站位;玩家未进 Boss 战前 combat_enabled = false
右侧刷新点 2670 增援入场起点,使用 LevelDirector.right_edge_x
竞技场右边界 2890 巡逻 / 后撤永不越界
Boss 房门 / 触发线 2960 三态:封锁→开放→反锁;作为通关后进入 Boss 战的流程线

Boss 房门三态(BossRoomGate):

  • 封锁(sealed,蓝灰色):开局即封,物理墙阻挡,直到 6 只小怪全灭。
  • 开放(绿色)LevelDirector 调用 unseal(),墙体关闭,可通行。
  • 反锁(红色):玩家跨过门线后在身后锁死(§4.5,不可回头刷怪),并触发 Boss 战入场规则;不移动 player 项目原有相机,不改变 HUD / 角色 / Boss 的比例。

2. 小怪行为逻辑(MinionBehavior 状态机)

决策与攻击全部对齐节拍(beat_ticked),移动逐帧执行。攻击动作进行中不移动、不换目标。

2.1 近战怪(role = melee

入场(Entry) → 巡逻(Patrol) ⇄ 追击(Chase) → [进入攻击距离后按拍攻击]
  • 入场:从画面边缘走到预定战斗区域(entry_target_x);途中玩家进入警戒范围则提前转入追击。
  • 巡逻:以锚点 ±110px 低速(0.45×)往返,面朝行走方向;阶段一预置怪以出生点为锚点。
  • 警戒→追击:玩家进入警戒范围(420px)后,在下一个节拍点切入追击(指南 §7.4);追击时全速逼近,停在 110px 处。
  • 脱战:玩家甩开警戒范围 1.25 倍距离 → 回到当前位置小范围巡逻。
  • 攻击:距离 ≤150px 时按拍出手;强势每 1 拍一次,弱势每 2 拍一次(§17.2)。

2.2 远程怪(role = ranged

入场(Entry) → 站位固定(Hold) → [距离判断按拍射击];受压时 后撤(Retreat) → 新站位(Hold)
  • 不巡逻。入场只做一段移动:走到预设站位后固定(指南 §7.4)。
  • 距离判断:玩家在射程内(430px)按拍射击;离开警戒范围(540px)即停止行动。
  • 后撤(调整站位):满足任一条件且 3 秒冷却就绪时,向远离玩家方向快速(1.7×)退开 190px:
    • 玩家近身(≤150px)持续 1.1 秒;
    • 1.5 秒内连续受击 2 次且玩家仍在近旁。
    • 贴墙无退路时改为穿过玩家身位向另一侧跳开。

2.3 行为参数表

参数 近战 远程
警戒范围 360 540
攻击距离 120 450(≤ 镜头半宽 460,不许屏幕外开火)
停步距离 120 340
攻击判定范围 前方 ≈140
巡逻半径 / 速度 110 / 0.45×
后撤距离 / 速度 / 冷却 220 / 1.7× / 3s
受击脱离 连续受击 4 次(2s 链窗)→ 闪烁无敌 0.4s + 跳跃脱离(3.2×)

2026-07-05 new3 定案更新:近战小怪基础攻击 50(远程 25 的两倍);远程怪的 近身后撤触发距离 220pxBoss 见 §4 及 decisions.md 当日条目(无韧性系统, 普攻恒霸体、耗能技能才可压制)。

3. 强弱状态与打断规则(核心规则)

只有处于强势状态的怪,才能打断玩家当前的状态。

  • 打断 = 玩家受击进入 Hitstun、当前动作被取消、被击退。三者同生同灭。
  • 弱势状态怪的攻击只结算伤害:不打 Hitstun、不取消玩家动作、不产生击退。玩家可以顶着弱势怪的攻击继续连段——这正是“在怪物弱势相位输出”的教学奖励。
  • 强弱在动作开始时快照(§17.4):出手瞬间是弱势,即使命中前相位切换,本次攻击依然没有打断权;反之亦然。
  • Boss 不分强弱(§18.1),恒定视为强势,攻击永远可以打断玩家。
  • 实现:DamageEmitter.attacker_interrupts(近战,configure_hit 时快照)与弹丸 attacker_interrupts(发射时快照,经 projectile_requested 上下文传递)→ CombatResolver 并入 interrupts 并把弱势击退清零 → HealthComponent / CombatManager 原有打断管线不变。

3.1 每跳伤害预算(玩家 HP 300)

弹丸伤害基数改为发射者自己的基础攻击力(玩家 100 / 小怪 25 / Boss 30),并结算发射者的强弱倍率——修复前弱势远程怪一发 45 反而比强势近战怪(18)疼。

敌人 × 相位 状态 单次伤害 攻击间隔 可打断玩家
近战怪 × Past 强势 ≈1825×0.5×1.4 每 1 拍
近战怪 × Future 弱势 ≈1025×0.55×0.7 每 2 拍
远程怪 × Past 弱势 ≈825×0.45×0.7 每 2 拍
远程怪 × Future 强势 ≈2325×0.65×1.4 每 1 拍
Boss × Past 24~30+30×0.8+ 决策每 2 拍
Boss × Future ≈1830×0.6 决策每 1 拍

承伤端沿用 §17.2/§17.3:强势承伤 25%,弱势承伤 250%(弱势怪 ≈1 个重技能+补刀击杀)。

4. Boss 行为逻辑

行为树(boss_behavior_tree.gd)按当前相位限定招式池并调整节奏(§18.1):

  • Past(慢而重):只用近战——三段地面连击轮转、远距冲刺逼近、中距突刺;决策每 2 拍一次。
  • Future(快而轻):只用远程——两种弹幕轮转、贴脸时 2 向弹幕逼退;决策每 1 拍一次。
  • 特殊攻击(突刺 / 2 向弹幕)前 2 拍生成条件型 TimeAnchorEvent(§18.2):玩家失锚则相位翻转、Boss 状态改变。
  • 被连续命中 4 次触发后撤位移(读条逃脱),防止无限压制;HP / 承伤不随相位变化。
  • 玩家未进 Boss 房时 combat_enabled = false:不出手、不产生时间锚点。

5. 挑战性与可通关性

  • 教学曲线:阶段一单怪教基础节奏与相位强弱 → 阶段二单远程怪教射程与站位 → 阶段三混编教目标优先级(“打当前弱势的那只”)。
  • 压力上限受控:增援分 4 波、左右交替、每 2 秒 1 只(约 8 秒刷完),不会瞬间包围;同一时刻最多 1~2 只强势怪能打断玩家,其余只能磨血。
  • 拖延惩罚:拖战会让场上怪数上升(指南 §7.5),但总量封顶 6 只。
  • 保底通关:全弱势输出窗口每次相位切换必然出现;弱势怪不打断意味着玩家连段不会被杂兵摸一下就断,Miss 惩罚主要来自强势怪与自己的节奏失误。
  • 数值下限:最坏情况(Past 相位 2 近战强势贴脸)≈36 伤/拍,玩家仍有 ≥8 拍反应窗口;Future 相位 2 远程强势 ≈46 伤/拍但可走位躲弹、近身逼后撤。

7. 第一关小怪出怪流程

第一关共出现 6 只小怪,分为 3 个出怪阶段。


7.1 阶段一:初始近战怪

出怪内容:

  • 近战怪 × 1

生成规则:

  • 玩家进入第一关时,第一只近战怪已经存在于预定位置
  • 该怪物不需要刷新动画
  • 玩家靠近后,按照近战怪行为逻辑进入巡逻、警戒、追击或攻击状态

教学目标:

  • 让玩家熟悉基础攻击节奏
  • 让玩家理解近战怪的巡逻、追击和攻击逻辑
  • 让玩家第一次观察相位切换对近战怪强弱状态的影响

教学重点:

  • 过去相位下,近战怪是强势状态
  • 未来相位下,近战怪是弱势状态
  • 玩家应尝试在怪物弱势相位进行输出

7.2 阶段二:近距离刷新远程怪

触发条件:

  • 玩家击败第一只近战怪

出怪内容:

  • 远程怪 × 1

生成规则:

  • 第一只远程怪在玩家附近不远处刷新
  • 刷新位置应在玩家可感知范围内
  • 不应直接贴脸刷新
  • 刷新后远程怪进入静止或距离判断状态

教学目标:

  • 让玩家熟悉远程怪的攻击范围
  • 让玩家理解远程怪不巡逻,但会调整站位
  • 让玩家观察远程怪在不同相位下的强弱变化

教学重点:

  • 过去相位下,远程怪是弱势状态
  • 未来相位下,远程怪是强势状态
  • 玩家需要利用相位切换寻找输出窗口

7.3 阶段三:左右两侧增援刷新

触发条件:

  • 玩家击败第二只怪物,也就是第一只远程怪

出怪内容:

  • 近战怪 × 2
  • 远程怪 × 2

生成规则:

  • 四只怪物从玩家左右两侧刷新
  • 刷新点位于摄像机范围外,或玩家不容易直接看到的位置
  • 怪物刷新后,从画面边缘进入摄像机范围
  • 刷新不是一次性全部出现,而是按间隔依次出现
  • 推荐每 2 秒刷新 1 只
  • 约 8 到 10 秒内完成全部 4 只怪物的刷新

推荐刷新顺序:

顺序 时间 怪物 方向
1 0 秒 近战怪 左侧
2 2 秒 远程怪 右侧
3 4 秒 近战怪 右侧
4 6 秒 远程怪 左侧

具体方向可以根据关卡地形调整,但需要保证玩家不会被瞬间包围。


7.4 增援怪物入场逻辑

近战怪入场

  • 近战怪从左右边缘进入摄像机范围
  • 进入后先移动到预定战斗区域
  • 如果玩家进入警戒范围,立刻在下一个节拍点进入追击状态
  • 如果玩家未进入警戒范围,则进入小范围巡逻状态

远程怪入场

远程怪不巡逻,但需要有入场移动。

  • 远程怪从画面边缘进入
  • 移动到预设站位
  • 到达站位后固定下来
  • 固定后开始判断玩家是否进入攻击范围
  • 如果玩家离开警戒范围,远程怪停止行动
  • 如果玩家近身过久或连续受击,远程怪尝试后撤或跳开

7.5 阶段三教学目标

阶段三的目标是让玩家同时处理多种敌人压力。

教学目标:

  • 让玩家同时面对近战压力和远程威胁
  • 让玩家理解不同怪物在同一相位下强弱不同
  • 训练玩家根据当前相位决定优先攻击目标
  • 让玩家体验拖延战斗会导致敌人逐步增多

教学重点:

  • 过去相位:近战怪强,远程怪弱
  • 未来相位:近战怪弱,远程怪强
  • 玩家需要根据当前相位选择更容易击杀的目标
  • 优先击杀弱势相位敌人,可以降低战斗压力

8. 第一关通关条件

第一关普通战斗区域的通关条件为:

  • 击败全部 6 只小怪

具体要求:

  • 击败初始近战怪
  • 击败刷新出的第一只远程怪
  • 击败左右两侧增援刷新的 4 只怪物

全部小怪被击败后:

  • 开放前往 Boss 房的路径
  • 玩家可以进入 Boss 房
  • 进入 Boss 房后触发 Boss 战