Files
2026-06-09 23:11:08 +08:00

43 lines
1.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Movement and Collision
## 职责
移动碰撞模块负责横版基础移动和平台碰撞,是玩家、敌人和可移动物体共用的底层玩法能力。
主要源码:
- `game/src/movement/platform_world.*`
- `game/src/data/level_definition.h`
- `game/src/actor/player_actor.*`
## 当前能力
- 地面和平台矩形碰撞。
- 重力。
- 水平移动。
- 落地检测。
- 防止玩家穿过平台。
- 平台数据来自 `LevelDefinition::collision`
## 当前使用方式
`WhiteboxScene` 把关卡碰撞世界传给 `PlayerActor`
```text
LevelDefinition.collision -> PlayerActor::SetMovementWorld()
```
`PlayerActor` 只提交移动意图,最终位置由 `PlatformMover` 约束。
## 约束
- 碰撞数据和视觉数据分离。
- 不让 `StageRenderer` 反推碰撞。
- 后续敌人也应复用 `PlatformWorld`,不要另写一套地形碰撞。
## 下一步
- 增加墙体/左右边界碰撞语义。
- 增加防卡地形和异常状态重置。
- 扩展成可服务敌人 AI 的移动查询接口。