作为一种爱好,我正在开发一款2D游戏。我已经使用分离轴方法实现了一些基本的碰撞检测。当两个物体发生碰撞时,我会沿着具有最小重叠量的轴投射其中一个物体。
我遇到的问题是当物体移动得相当快时,重叠量最小的轴并不总是正确的方向。我所拥有的最好的例子是当一个物体由于模拟的引力向下移动(沿着+ y轴)并且与靠近“边缘”的环境物体(如在悬崖的边缘)碰撞时。如果物体的下落速度足够快,则重叠量最小的轴将成为x轴,并且物体沿x轴侧向推动。
处理快速移动物体的最佳方法是什么?我考虑过以小增量移动掉落的物体,这似乎增加了很多额外的开销。我还考虑给环境对象一个“偏好”,用于投影落下的对象,但这看起来很混乱,容易出错。
有没有办法在不增加额外开销的情况下做到这一点?
答案 0 :(得分:1)
我终于设法找到了一篇描述扫描测试的好文章,以防其他人在这篇文章中遇到同样的问题。这篇文章有更多,但下面的链接描述了轴对齐的边界框之间的碰撞,这就是我正在使用的: