feat: UI polish, chapter select improvements, save system enhancements, roadmap update

This commit is contained in:
2026-06-09 15:19:53 +08:00
parent 2748b2c16f
commit 72e442f2c3
7 changed files with 206 additions and 18 deletions

View File

@@ -29,11 +29,42 @@
- 快捷键自定义
- 2x/4x/8x 多档位
## P10 键盘/手柄导航 - 扩展
## P10b 手柄导航 — 远期Gamepad API
- Gamepad 震动反馈(手柄扳机键模拟选择"重量"
- 自定义键位映射界面
- 手柄热插拔检测
以下功能在 P10a 键盘导航完成后,作为手柄支持的第二期实现:
### 手柄映射
| 操作 | 手柄按键 |
|------|----------|
| 选项导航 | 左摇杆 / 方向键(↑↓←→) |
| 确认 | A 键Xbox/ ×PS |
| 取消/菜单 | B 键Xbox/ ○ 键PS |
| QTE 按键 | A/B/X/Y 自动映射到 QTE 定义的 keys 顺序 |
| 跳过 | Start 键 |
| 倍速 | LB / RB 循环 |
### QTE 设备感知
- 键盘连接时 QTE 提示显示键盘按键名称空格、WASD
- 手柄连接时 QTE 提示自动切换为手柄按钮图标A/B/X/Y + 方向图标)
- `QTESystem` 升级:输入源切换 + 按键提示动态渲染
### 视觉反馈
- QTE Overlay 的中央圆圈根据设备动态渲染(键盘=方块内字母,手柄=圆形内图标)
- 手柄连接后自动隐藏鼠标光标,`inputMode = 'gamepad'`
- 手柄断连后自动恢复键盘模式,不再依赖手柄
### 实现要点
- [ ] `engine/systems/InputSystem.ts` 升级 — `gamepadconnected`/`gamepaddisconnected` 事件监听
- [ ] Gamepad API 轮询rAF 中 `navigator.getGamepads()` 读取摇杆/按键状态)
- [ ] QTE 手柄映射逻辑:方向键/摇杆 → `keys[]` 中的方向匹配,按钮 → A/B/X/Y
- [ ] `src/components/QTEOverlay.vue` 升级 — 根据 inputMode 渲染不同图标
- [ ] 键位映射配置持久化IndexedDB
- [ ] 手柄震动反馈(`GamepadHapticActuator.pulse()`
- [ ] 手柄热插拔检测 + 自动切换 inputMode
## P11 多语言字幕 - 扩展