我已经在2D中实现了SAT碰撞检测系统,但是我没有得到如何获得碰撞影响点。
目前我获得了mtv和分离轴,因此我可以解决碰撞但不对其施加正确的力,因为缺少撞击点。
来自Dirk Gregorius的https://www.gamedev.net/forums/topic/588070-seperating-axis-theorem---how-to-resolve-contact-points/的回应帮助我解决了这个问题。如上所述,您必须找到最接近的两个边缘,并观察它们碰撞的位置,否则就意味着它的边缘/边缘碰撞“第一个”面是较差的面,因为它是垂直于您的分离轴的面。对于另一张脸,我选择将一个圆点作为我的第一张脸与所有其他边缘的产物,并找到一个较少点积的产品。然后我检查两段是否发生碰撞。