不能破坏身体(Box2d)

gam*_*app 4 box2d

- for (var bb1:b2Body= world.GetBodyList(); bb1; bb1 = bb1.GetNext())
  {
     if (bb1.GetUserData() is Sprite)
     {
         world.DestroyBody(bb1);
     }
  }
  world=null;
Run Code Online (Sandbox Code Playgroud)

删除box2d中的b2body是否正确?

但我仍然看到舞台上的物体.

ifo*_*e2d 8

如果你试图在世界的Step()函数中做这个(例如在一个联系人监听器中),它将无法工作,因为世界仍在处理这些实体.您需要记下要销毁的物体,然后在世界时间步骤结束后销毁它们.

另外,我不确定你使用的语言是什么,但是这个循环会破坏一个主体然后在你刚刚销毁的东西上调用GetNext()似乎有点奇怪.