我正在开发基于 3D 瓷砖的游戏,并且正在使用 AABB 碰撞检测。对于玩家相交的每个立方体,我找到玩家与立方体相交最少的轴,然后沿着该轴将玩家推出立方体。
根据签入多维数据集的顺序,当沿多个多维数据集的边缘滑动时,这可能会导致问题。我创建了一个应该解释问题的图表:
- 箭头 #1 是玩家的尝试移动。其他箭头是碰撞响应。
- 在左图中,首先测试与右侧立方体的碰撞,导致玩家被推向左侧,然后向上推。(坏)
- 在右图中,首先测试与左侧立方体的碰撞,导致玩家被向上推,此时玩家不再与另一个立方体相交。(好)
关于解决此问题的最有效方法的任何想法可能是什么?或者有什么更好的方法来处理碰撞响应?
谢谢你。