作为爱好,我正在开发一款 2D 游戏。我已经使用分离轴方法实现了一些基本的碰撞检测。当两个对象发生碰撞时,我将其中一个对象投射到重叠最少的轴上。
我遇到的问题是,当一个物体移动得相当快时,重叠最少的轴并不总是正确的方向。我最好的例子是当一个物体由于模拟的引力而向下移动(沿着+ y轴)并与靠近“边缘”的环境物体碰撞(如悬崖边缘)。如果物体下落的速度足够快,那么重叠量最少的轴最终会成为 x 轴,并且物体会被沿 x 轴侧向推。
处理快速移动物体的最佳方法是什么?我考虑过以小幅度移动下落的物体,这似乎增加了很多额外的开销。我还考虑过给环境对象一个“偏好”哪个轴来投射下落的物体,但这看起来很混乱且容易出错。
有没有办法在不增加大量额外开销的情况下做到这一点?