我在iPhone上首次使用BOX2D。总的来说,它一直很不错,但是当我创建一个同时包含静态和动态主体的场景时,我不断地在ContactManager的一行中断言。确切的线是...Box2D导致断言的静态/动态物体之间的分割
b2Assert(bodyA->m_type == b2_dynamicBody || bodyB->m_type == b2_dynamicBody);
这是在void b2ContactManager :: Collide()。这似乎表明它主张两个物体相撞时,其中一个不是动态的......这根本没有意义。当然,动态物体应该与静态物体碰撞!
它不会在这条线上断言,直到我奇怪地创建静态对象。我有大量的动态盒子在屏幕上移动。只要我介绍一个静态的,我会在这里发生崩溃。
谁能帮助我吗?这似乎就是那些“非常明显”的问题之一!
如果您的静态主体是在现有的动态主体之上创建的,但是我不明白为什么它需要是断言,则会发生这种情况。你知道这是什么版本的Box2D吗?在当前版本中,这不是一个断言,如果两个主体都不是动态的,它就不会做任何事情。 – iforce2d