0

当我的游戏因断言失败而崩溃时,我收到以下日志。

 Assertion failed: (typeA == b2_dynamicBody || typeB ==b2_dynamicBody), function SolveTOI, file
/SourceCache/PhysicsKit/PhysicsKit-6.5.4/PhysicsKit/Box2D/Dynamics/b2World.cpp, line 678.

这种情况会间歇性发生(大约每 10 次我玩游戏就有一次)。我所能得到的是,Box2D 引擎与场景的物理世界中的接触检测相关的发生了一些不一致。但我无法在我的代码中查明问题的原因。

有人可以告诉我如何去寻找这个问题的根源吗?

4

1 回答 1

1

断言表明两个物体都不是动态的。

确保不要将主体的动态属性更改为 NO(使用位掩码将它们排除在碰撞之外)。绝对不要在联系回调方法中这样做,因为看起来这个断言是在联系冲突解决步骤中发生的。两个静态物体只有在其中一个物体在接触开始时最初是动态的时才能接触并试图解决碰撞,这似乎是合乎逻辑的。

于 2014-03-19T09:52:56.950 回答