跳到主要内容

Game 模块架构文档

目录


模块分层总览


类关系图

核心类继承与实现关系

数据模型类关系


核心类职责

GameInstance(游戏主实例)

GameInstance 是整个游戏引擎的核心,通过内部枚举 LifecycleState 实现完整状态机:

初始化顺序(Phase 1 → Phase 3):

GameManager(全局实例注册)

TimingManager(节拍时序转换)

核心公式:

已知:BPM 变化列表 [{beat₀, bpm₀}, {beat₁, bpm₁}, ...]

beat→ms:
targetMs = 上一段起点的绝对ms
ms = targetMs + round(60000 / bpm * (beat - targetBeat)) + offsetMs

ms→beat:
beat = targetBeat + (timeMs - targetMs) * bpm / 60000

包间依赖关系


对象池架构

NoteManager 管理 GameplayNote(ItemDisplay 实体)的对象池,通过需求曲线预测动态调整池大小:

常量:

常量说明
LOOK_AHEAD_BEATS4.0前瞻窗口(beat)
POOL_MARGIN10峰值之上的额外缓冲
BATCH_SIZE50每 tick 预加载数
SHRINK_BATCH50每 tick 销毁数
SHRINK_THRESHOLD64触发缩池的超出量

对手系统架构


资源包系统架构


特效系统架构


反馈系统架构

FeedbackManager 按玩家设置动态组装 Guidance 责任链: