- for (var bb1:b2Body= world.GetBodyList(); bb1; bb1 = bb1.GetNext())
{
if (bb1.GetUserData() is Sprite)
{
world.DestroyBody(bb1);
}
}
world=null;
是否正確刪除box2d中的b2body?不能摧毀身體(Box2d)
但我仍然看到舞臺上的物體。
- for (var bb1:b2Body= world.GetBodyList(); bb1; bb1 = bb1.GetNext())
{
if (bb1.GetUserData() is Sprite)
{
world.DestroyBody(bb1);
}
}
world=null;
是否正確刪除box2d中的b2body?不能摧毀身體(Box2d)
但我仍然看到舞臺上的物體。
如果您嘗試在世界的Step()函數內部(例如在聯繫人偵聽器中)執行此操作,它將無法工作,因爲世界仍在處理屍體。你需要記下你想要摧毀的物體,然後在世界時間步驟結束後摧毀它們。
另外,我不確定你使用的是什麼語言,但是看起來有點奇怪,這個循環會破壞一個物體,然後在你剛剛銷燬的物體上調用GetNext()。
Box2D AS3端口有錯誤,連接着DestroyBody函數。 錯誤修復爲here(俄語)。
問題在聯絡池中。 而且您必須在之後刪除機構您的世界時間步已完成。
ContactListener是我的情況 – damienix 2014-06-17 07:32:32