由于接触委托断言失败导致游戏崩溃



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

 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次我玩一次游戏)。我所能得到的是,在场景的physicsWorld中,与接触检测相关的Box2D引擎出现了一些不一致。但是我无法在我的代码中找出问题的原因。

谁能告诉我怎样着手找出这个问题的根源?

assert表示两个主体都不是动态的。

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

最新更新