我在iPhone上首次使用BOX2D。總的來說,它一直很不錯,但是當我創建一個同時包含靜態和動態主體的場景時,我不斷地在ContactManager的一行中斷言。確切的線是...Box2D導致斷言的靜態/動態物體之間的分割
b2Assert(bodyA->m_type == b2_dynamicBody || bodyB->m_type == b2_dynamicBody);
這是在void b2ContactManager :: Collide()。這似乎表明它主張兩個物體相撞時,其中一個不是動態的......這根本沒有意義。當然,動態物體應該與靜態物體碰撞!
它不會在這條線上斷言,直到我奇怪地創建靜態對象。我有大量的動態盒子在屏幕上移動。只要我介紹一個靜態的,我會在這裏發生崩潰。
誰能幫助我嗎?這似乎就是那些「非常明顯」的問題之一!
如果您的靜態主體是在現有的動態主體之上創建的,但是我不明白爲什麼它需要是斷言,則會發生這種情況。你知道這是什麼版本的Box2D嗎?在當前版本中,這不是一個斷言,如果兩個主體都不是動態的,它就不會做任何事情。 – iforce2d