Celeste and TowerFall Physics
4 months ago
- #physics-engine
- #game-development
- #platformer
- 《TowerFall》和《Celeste》中的物理系统由两个核心类实现:Solids(可碰撞的地形几何体)和Actors(玩家、箭矢等物理对象)
- 所有碰撞体都是轴对齐包围盒(AABB),具有整数坐标的定位点、宽度和高度
- Actors通过MoveX/MoveY函数配合碰撞委托实现移动,确保不会与Solids发生重叠
- Solids的Move函数会强制移动(无视其他几何体),通过携带或推动机制处理与Actors的交互
- 推动优先级高于携带:被推动的Actors会位移避让,而被携带的Actors会随Solid同步移动
- Squish回调会在Actors被Solid挤压时销毁对象,但游戏可覆写该行为
- 系统通过逐像素解析交互避免重叠,从而保证流畅且可预测的物理效果