不能摧毁身体(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()。
ContactListener是我的情况 – damienix 2014-06-17 07:32:32