我正在构建一个游戏,我目前正在研究物理。
我正在使用SAT 算法来检测碰撞。碰撞发生在字符(AxisAlignedBoundingBox)和一些矩形(带旋转)之间。
一切正常,除了在特定情况下靠近角落的碰撞。(这是一个众所周知的问题,但我没有找到任何好的解决方案)。
在示例 1中,在第二个场景中,角色应该向上移动(停留在障碍物上)。
它恰好向左移动。
在示例 2中,在第二个场景中角色不应该起床。有时会得到。
我知道为什么会这样,因为dx和dy,Minimum Translation Vector 并不总是想要的。
这个问题有几种解决方案,但不是一个很好的解决方案(就解决问题而不是创造其他问题而言!)。我什至愿意从一开始就使用完全不同的算法。
请给我一个关于比 SAT 更好的算法的提示,或者一些解决方法。
谢谢你!