feat: main menu component, roadmap update
This commit is contained in:
42
ROADMAP.md
42
ROADMAP.md
@@ -896,36 +896,34 @@ QTE 成功 / 到达隐藏结局 / 通关等"事件型"成就,通过在对应 e
|
||||
- [x] `src/App.vue` — 主菜单 + 游戏内"设置"按钮;Space 暂停/恢复带遮罩;QTE 参数传入引擎
|
||||
- [x] 验证:TypeScript + Vite build 通过
|
||||
|
||||
### P17 全局统计 + 主菜单 — 通关数据展示 + 统一入口(待实现)
|
||||
### P17 主菜单统一化 — 游戏入口整理 ✅ 已完成 2026-06-09
|
||||
|
||||
目标:通关后展示统计数据(线索数、结局数、QTE 成功/失败次数),所有入口整合到统一主菜单。
|
||||
目标:将当前散落在 `start-overlay` 中的 7 个按钮整合到一个 `MainMenu.vue` 统一组件中,
|
||||
游戏结束后不再只用"游戏结束"大字,而是显示同样的入口栏。
|
||||
|
||||
**全局统计数据定义:**
|
||||
**设计决策:** 全局统计面板废弃。P14 成就系统和 P15 章节回顾已覆盖玩家行为追踪需求,
|
||||
业界交互式电影游戏(Detroit / Dark Pictures / Telltale)也不做全局数字统计面板。
|
||||
|
||||
```json
|
||||
{
|
||||
"stats": [
|
||||
{ "id": "clues_found", "label": "线索发现数", "variable": "investigation", "icon": "🔍" },
|
||||
{ "id": "qte_wins", "label": "QTE 成功次数", "variable": "qte_succeeded", "icon": "🎯" },
|
||||
{ "id": "endings_count", "label": "达成结局数", "type": "endings", "icon": "🏁" }
|
||||
]
|
||||
}
|
||||
**菜单结构:**
|
||||
|
||||
```
|
||||
┌──────────────────────────────┐
|
||||
│ [中文] [English] │ ← 语言切换
|
||||
│ │
|
||||
│ [开始游戏] [继续上次进度] │
|
||||
│ │
|
||||
│ [章节] [成就] [画廊] [设置] │
|
||||
│ │
|
||||
└──────────────────────────────┘
|
||||
```
|
||||
|
||||
数据从 `StateManager.variables` 读取。`type: "endings"` 的统计项从 `visitedSceneIds ∩ endings[].sceneId` 计算。
|
||||
|
||||
**主菜单界面:**
|
||||
|
||||
统一入口组件 `MainMenu.vue`,整合:新游戏 / 继续 / 章节选择 / 成就 / 画廊 / 设置 / 语言切换。
|
||||
游戏结束后展示同样的按钮栏 + 标题"游戏结束"。
|
||||
|
||||
**实现清单:**
|
||||
|
||||
- [ ] `engine/types.ts` — `GameData.stats: StatDef[]`
|
||||
- [ ] `src/components/MainMenu.vue` — 主菜单统一入口,所有按钮整齐排列
|
||||
- [ ] `src/components/StatsPanel.vue` — 通关后统计面板
|
||||
- [ ] `src/App.vue` — 游戏结束后展示 StatsPanel;主菜单用 MainMenu 替代当前散装按钮
|
||||
- [ ] `public/scenes/demo.json` — `stats` 定义
|
||||
- [ ] 验证:主菜单入口完整、通关后统计数据正确、统计刷新后仍然准确
|
||||
- [x] `src/components/MainMenu.vue` — 统一主菜单组件:两行按钮(开始/继续 + 章节/成就/画廊/设置)+ 语言切换 + 游戏结束标题模式
|
||||
- [x] `src/App.vue` — 使用 `MainMenu` 替代散装 `start-overlay` 按钮 + `game-end-overlay`;移除 60 行旧 CSS
|
||||
- [x] 验证:TypeScript + Vite build 通过
|
||||
|
||||
## 依赖清单
|
||||
|
||||
|
||||
Reference in New Issue
Block a user