Box2d扼杀不会发现碰撞

时间:2014-07-18 16:51:22

标签: c++ box2d collision

我已经实施了b2ContactListener来检测碰撞。我有一个重力等于(0,0)的世界,我有一个动态的身体,它不是传感器和运动物体是传感器。它们之间的碰撞并没有被奇怪地记录下来。但是当我将运动物体设为非传感器时,则会检测到碰撞,并且由于碰撞,动态物体会改变位置。可能是因为我使用body->SetTransform(...)函数移动动态和运动两个节点?或者我错过了其他什么?

1 个答案:

答案 0 :(得分:1)

我已经修复了问题:我已将睡眠设置更改为m_world.SetAllowSleeping(false);并且它有效。问题如下:只要没有物理模拟,我通过调用SetTransform函数移动了对象,对象正在休眠。另一方面,睡眠对象无法记录碰撞。因此,当我不允许睡觉时,它开始调用BeginContact回调。