我已经实施了b2ContactListener
来检测碰撞。我有一个重力等于(0,0)的世界,我有一个动态的身体,它不是传感器和运动物体是传感器。它们之间的碰撞并没有被奇怪地记录下来。但是当我将运动物体设为非传感器时,则会检测到碰撞,并且由于碰撞,动态物体会改变位置。可能是因为我使用body->SetTransform(...)
函数移动动态和运动两个节点?或者我错过了其他什么?
答案 0 :(得分:1)
我已经修复了问题:我已将睡眠设置更改为m_world.SetAllowSleeping(false);
并且它有效。问题如下:只要没有物理模拟,我通过调用SetTransform
函数移动了对象,对象正在休眠。另一方面,睡眠对象无法记录碰撞。因此,当我不允许睡觉时,它开始调用BeginContact
回调。