Box2D相邻边缘碰撞

时间:2013-04-07 21:30:01

标签: c++ collision-detection box2d edge-detection

我在box2D中有一个世界,我使用2个边缘体来表示墙(我有2个因为2个对象之间可以有不同的角度)。

我的问题是,每当圆形物体沿着第一条边缘移动时,当它到达第二条边缘时,它会检测到碰撞并从墙壁上反弹。即使两条边之间没有角度。

此外,如果我的圆形物体碰到两条边之间的连接点(有角度或没有角度),它会反弹到一个未确定的方向。

如何修复或阻止这种行为?

Collision detected

enter image description here

角度近似

1 个答案:

答案 0 :(得分:2)

对于共线边缘,我会添加一些预处理,将两个共线边结合成一个以消除这些问题。

对于第二种情况。我想到的唯一一个是检测多个边缘的碰撞(有一些公差,肯定不是精确值),然后计算感兴趣边缘的平分线 - 基于此,圆形物体撞击边缘的角度计算新的角。