Wire engine feature services into game skeleton

This commit is contained in:
2026-06-09 22:58:42 +08:00
parent d353e91f5e
commit d41f9d1096
30 changed files with 680 additions and 77 deletions
+17 -4
View File
@@ -28,13 +28,26 @@
游戏层新增 `GameServices`,只做游戏项目需要的引擎服务接入和状态记录:
- 初始化 `AudioSystem`
- 初始化 `FontManager`,有 `assets/fonts/debug.ttf``assets/fonts/ui.ttf` 时注册 debug 字体。
- 探测并打开可选 `Script.pvf`
- 初始化 `NpkArchive`
- 初始化 `SoundPackArchive`
- 探测并加载可选 `AudioDatabase`
- 记录 `SaveSystem` 是否已由引擎初始化。
这些服务是可选能力。缺少 `Script.pvf``ImagePacks2``SoundPacks` `audio.xml` 时,游戏仍然使用当前 PNG/白盒 fallback 启动。
这些服务是可选能力。缺少 `Script.pvf``ImagePacks2``SoundPacks`、字体、音频`audio.xml` 时,游戏仍然使用当前 PNG/白盒 fallback 启动。
## 引擎能力接入点
当前游戏骨架已把以下引擎能力接入到真实调用路径:
- `Animation``PlayerActor` 会优先尝试 PVF `.ani`,失败后回退 NPK IMG,再回退 PNG spritesheet。
- `NpkArchive` / `Sprite::createFromNpk`:角色资源和后续场景素材可从 `assets/ImagePacks2/*.npk` 进入。
- `TextSprite` / `UIScene``GameUiOverlay` 已接入 UI scene stack;有字体时显示文字状态,没有字体时用色条 fallback。
- `Sound` / `Music` / `AudioDatabase``GameAudio` 已支持 cue id,优先使用 `audio.xml`,否则读取 `assets/sounds/*.wav``assets/music/*.ogg`
- `SaveSystem``GameSave` 已保存/读取 debug overlay 开关状态。
资源槽位见 `../assets/ASSETS.md`
## 地图资源入口
@@ -80,9 +93,9 @@ endbattle_zone
## 仍待迁移的能力
- 玩家动画:从手写 spritesheet 帧切换迁移到引擎 `Animation` / PVF ANI
- 场景视觉资源:如果素材进入 NPK,迁移到 `NpkArchive` / `Sprite::createFromNpk`
- 音频:使用 `AudioSystem``Sound``Music``AudioDatabase`
- 玩家动画:当前已接入 `Animation` 优先路径,但临时 PNG fallback 仍保留手写帧切换,等待正式 PVF/NPK 动画资源
- 场景视觉资源:`StageRenderer` 支持普通 PNG;若素材进入 NPK,后续补 stage layer 的 NPK sprite path
- 音频:调用路径已接入,等待正式音频资源和 `audio.xml`
- 地图:后续可把 `.map` 扩展为工具导出格式或 PVF 脚本格式,当前 C++ 地图只作为 fallback。
- 输入配置:通过 `Asset` 或 PVF 读取 `InputConfig`