Adapt game input for Switch controllers

This commit is contained in:
2026-06-09 13:28:31 +08:00
parent 8bbb847a1b
commit d5e876e542
4 changed files with 137 additions and 12 deletions
+14 -8
View File
@@ -123,11 +123,18 @@ mindmap
- `core/asset_paths.h`
- `core/input_state.*`
- `core/debug_flags.h`
- `InputStateProvider` 已聚合键盘、SDL GameController 和 Switch 原生 `PadState`
当前输入映射:
- 移动:键盘 `A/D`、方向键、手柄左摇杆、方向键、Switch 左摇杆/方向键。
- 跳跃:键盘 `Space/W/Up`、手柄 `A/B`、Switch `A/B`
- 攻击:键盘 `J/K`、手柄 `X/Y`、Switch `X/Y`
下一步:
- 增加 `GameContext`,统一传递全局服务。
- 输入层支持键盘和手柄统一映射。
- 增加可配置键位表,让 PC 和 NS 可以分别覆盖默认映射。
### 2. Scene
@@ -312,7 +319,6 @@ mindmap
下一步:
- 将 Switch Joy-Con 输入接入 `InputStateProvider`
- 在 Ryujinx 或真机上验证主循环、shader 和角色纹理。
- 如果 RomFS 不可用,再补 SD 卡外部资源部署脚本。
@@ -320,7 +326,7 @@ mindmap
```text
输入
SDL Keyboard / Controller
SDL Keyboard / Controller / Switch PadState
-> InputStateProvider
-> InputState
-> PlayerActor
@@ -401,11 +407,11 @@ mindmap
下一步建议按这个顺序做:
1. `BattleZone`:做清版推进的核心框架。
2. `SwitchInput`:把 Joy-Con/手柄输入接入 `InputStateProvider`
3. `EnemyActor`:做第一个敌人占位
4. `CombatSystem`:把 hitbox/hurtbox 真正跑起来
5. `SpriteAnimator`:把玩家动画从硬编码改成组件
6. `StageLayer`:把白盒视觉层扩展为背景、tiles 和 props
2. `EnemyActor`:做第一个敌人占位
3. `CombatSystem`:把 hitbox/hurtbox 真正跑起来
4. `SpriteAnimator`:把玩家动画从硬编码改成组件
5. `StageLayer`:把白盒视觉层扩展为背景、tiles 和 props
6. `InputConfig`:把默认键位/手柄映射迁移到可配置数据
## 素材协作提示