Files
zeling_v2/Docs/DesignSpec/10_UISystem.md
2026-05-08 11:04:00 +08:00

4.9 KiB
Raw Permalink Blame History

10 · UI 系统规范

所属文档集 ← 返回索引
摘要:游戏 UI 分层架构、HUD 元素规范、菜单系统与 UI 事件契约。


目录

  1. UI 设计原则
  2. UI 分层架构
  3. HUD 规范
  4. 菜单系统
  5. UI 数据绑定契约
  6. UI 事件目录

1. UI 设计原则

原则 说明
非侵入 HUD 元素尽量小,不遮挡游戏视野
信息即时 关键状态变化立即反映HP减少不延迟
纯响应式 UI 不主动查询游戏状态,只响应事件
逻辑无关 UI 不包含任何游戏逻辑,仅负责显示与交互

2. UI 分层架构

从最低层到最高层:

层级 名称 内容 说明
Layer 0 Game World 游戏本体 非 UI
Layer 1 World UI 对话气泡、头顶血条 跟随世界坐标
Layer 2 HUD 血量/资源/护符 全程显示
Layer 3 Notification 弹出提示、成就 临时覆盖
Layer 4 Overlay Menu 暂停、设置 半透明遮罩
Layer 5 Full-screen 存档读取、过场动画 完全遮盖
Layer 6 Transition 场景转场动画 最高优先级

3. HUD 规范

3.1 HUD 元素列表

元素 位置 显示内容
HP 条 左上角 当前 HP / 最大 HP格子式显示
灵泉指示 HP 条下方 灵泉数量图标×N
灵力条 左下角 当前灵力(填充环形或条形)
魄元条 灵力条旁 当前魄元
形态指示 右下角 当前形态图标 + 三形态小图标
技能槽 形态指示旁 当前形态的魂技能/魄技能图标 + 冷却遮罩
Geo 计数 右上角(可选) 当前 Geo 数量
Boss 血条 屏幕下方居中 仅 Boss 战显示,含阶段分段标记

3.2 HP 显示规范

  • 每格 = 固定 HP 量(如每格 = 50 HP
  • 满格:实心图标
  • 半格(受伤未满格):半空状态
  • 空格:空心图标
  • 当前 HP < 20%:格子闪烁警告
  • HP 变化时:格子动画(减少时格子渐消,恢复时渐现)

3.3 形态指示规范

  • 当前激活形态:大图标高亮
  • 其他两形态:小图标、低亮度
  • 切换时:当前形态图标播放切换动画,新形态高亮

4. 菜单系统

4.1 菜单层级

主菜单
├── 继续游戏
├── 新游戏
├── 存档选择
└── 设置
    ├── 图像设置
    ├── 音频设置
    ├── 操控设置
    └── 辅助设置

暂停菜单(游戏中)
├── 继续
├── 地图
├── 护符装备
├── 道具/图鉴
├── 设置
└── 返回主菜单(确认弹窗)

4.2 菜单状态管理

菜单系统维护一个菜单栈Stack:

打开菜单:
  → 新菜单 push 到栈顶
  → 暂停游戏时间(若为暂停菜单)
  → 新菜单获得输入焦点

关闭/返回:
  → 当前菜单 pop
  → 若栈空 → 游戏恢复运行

关闭所有菜单:
  → 清空栈
  → 游戏立即恢复

5. UI 数据绑定契约

UI 不直接访问游戏数据,通过以下接口获取信息:

Interface IHUDDataProvider {
    getPlayerHP()        → {current: Integer, max: Integer}
    getPlayerSoul()      → {current: Integer, max: Integer}
    getPlayerSpirit()    → {current: Integer, max: Integer}
    getSpringCount()     → Integer
    getCurrentForm()     → FormData
    getActiveCharms()    → List<CharmData>
    getGeoAmount()       → Integer
}

Interface IBossHUDProvider {
    getBossHP()          → {current: Integer, max: Integer}
    getBossPhaseCount()  → Integer
    getBossPhaseThresholds() → List<Number>  // 各阶段 HP 百分比
    getBossName()        → String
}

UI 监听事件更新显示,不轮询接口(接口仅供初始化或主动请求使用)。


6. UI 事件目录

事件 触发者 UI 响应
OnPlayerHPChanged 玩家系统 刷新 HP 格子
OnPlayerSoulChanged 玩家系统 刷新灵力条
OnPlayerSpiritChanged 玩家系统 刷新魄元条
OnSpringCountChanged 玩家系统 刷新灵泉图标
OnFormChanged 形态系统 刷新形态指示
OnBossEncounterBegin 世界系统 显示 Boss 血条
OnBossHPChanged Boss 刷新 Boss 血条
OnBossPhaseChanged Boss Boss 血条阶段标记动画
OnBossDefeated Boss 隐藏 Boss 血条(动画)
OnSkillCooldownUpdated 技能系统 刷新技能冷却遮罩
OnCharmEquipped 进程系统 刷新护符栏
OnNotification 任意系统 显示弹出通知
OnMenuOpen 输入系统 打开暂停菜单
OnDialogueStarted 叙事系统 显示对话框
OnDialogueEnded 叙事系统 隐藏对话框