不能摧毁身体(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()。

+0

ContactListener是我的情况 – damienix 2014-06-17 07:32:32

Box2D AS3端口有错误,连接着DestroyBody函数。 错误修复为here(俄语)。

问题在联络池中。 而且您必须在之后删除机构您的世界时间步已完成。