feat: P1 core - seamless video switching, conditional branches, save/load
- VideoManager: A/B dual-buffered video with crossfade transitions and candidate preloading - Engine: condition-based choice filtering, ChoiceSystem timer, resumeScene for save/load - SceneManager: getCandidateUrls for preloading next scenes - SaveSystem: Dexie.js IndexedDB multi-slot save/load - ChoiceSystem: timed choices with countdown and auto-default on timeout - GamePlayer: dual video elements with crossfade CSS - ChoicePanel: timer progress bar and countdown text - SaveLoadMenu: save/load UI component - App.vue: menu trigger, dual video refs, save/load integration - gameStore: timer state, saves list - demo.json: conditional choice example (secret ending, requires trust >= 80) - ROADMAP: mark P1 as completed
This commit is contained in:
21
ROADMAP.md
21
ROADMAP.md
@@ -140,16 +140,19 @@ interface SaveData {
|
||||
- [x] `public/scenes/demo.json` — 编写一段简单剧情(7 个场景节点)
|
||||
- [x] 验证:从 demo.json 加载场景,能走通 开始→选择→分支播放→结束 流程
|
||||
|
||||
### P1 核心 — 无缝切换 + 条件分支 + 存档(1-2 周)
|
||||
### P1 核心 — 无缝切换 + 条件分支 + 存档(1-2 周)✅ 已完成 2026-06-07
|
||||
|
||||
- [ ] `engine/core/VideoManager.ts` 升级 — A/B 双缓冲,预加载候选视频,CSS 交叉淡化
|
||||
- [ ] `engine/core/SceneManager.ts` 升级 — 支持条件分支(根据 variables/flags 过滤选项)
|
||||
- [ ] `engine/systems/SaveSystem.ts` — Dexie.js IndexedDB 存取,多槽位
|
||||
- [ ] `engine/systems/ChoiceSystem.ts` — 限时选择倒计时,超时默认选择(第一项或配置的默认项)
|
||||
- [ ] `src/components/SaveLoadMenu.vue` — 存档/读档 UI
|
||||
- [ ] `src/stores/gameStore.ts` — Pinia 全局状态管理
|
||||
- [ ] `src/composables/` — 三个 composable 桥接层
|
||||
- [ ] 验证:分支剧情走通,存档读档正常,视频切换无明显黑屏
|
||||
- [x] `engine/core/VideoManager.ts` 升级 — A/B 双缓冲,预加载候选视频,CSS 交叉淡化
|
||||
- [x] `engine/core/SceneManager.ts` 升级 — 支持条件分支(根据 variables/flags 过滤选项)
|
||||
- [x] `engine/systems/SaveSystem.ts` — Dexie.js IndexedDB 存取,多槽位
|
||||
- [x] `engine/systems/ChoiceSystem.ts` — 限时选择倒计时,超时默认选择
|
||||
- [x] `src/components/SaveLoadMenu.vue` — 存档/读档 UI
|
||||
- [x] `src/stores/gameStore.ts` — Pinia 全局状态管理(含计时器、存档列表)
|
||||
- [x] `src/composables/useGameEngine.ts` — 桥接层(双 video、存档、计时器)
|
||||
- [x] `src/components/GamePlayer.vue` — 双 video 元素 + 交叉淡化 CSS
|
||||
- [x] `src/components/ChoicePanel.vue` — 倒计时进度条 + 计时文字
|
||||
- [x] `src/App.vue` — 整合 SaveLoadMenu、双 video、计时器
|
||||
- [x] 验证:条件分支走通,存档读档正常,视频切换交叉淡化
|
||||
|
||||
### P2 进阶 — QTE + 字幕 + 多存档槽(1 周)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user