Box2d奇怪地不检测碰撞

Box2d stranglely does not detect collision

本文关键字:检测 碰撞 Box2d      更新时间:2023-10-16

我已经实现了检测碰撞的b2ContactListener。我有一个重力等于(0,0)的世界,我有一个动态物体,它不是传感器,运动物体是传感器。它们之间的碰撞并没有被奇怪地记录下来。但是当我使运动体无传感器时,就会检测到碰撞并且动态体会因为碰撞而改变位置。会不会是因为我用body->SetTransform(...)函数同时移动了动态体和运动学体?还是我遗漏了什么?

我已经解决了这个问题:我已经将睡眠设置更改为m_world.SetAllowSleeping(false);并且它工作了。问题如下:就没有物理模拟而言,我通过调用SetTransform函数移动了对象,对象处于睡眠状态。另一方面,睡眠对象不能记录碰撞。因此,当我不允许睡眠时,它开始调用BeginContact callback。