Box2D Flash,摧毁尸体

Wil*_*hoe 0 flash garbage-collection actionscript-3 box2d physics-engine

这是我一直希望解决的问题,虽然我永远找不到解决方法.我想我可能会遗漏一些东西,但我似乎找不到什么.

我试图从b2World中摧毁身体,我在各种教程中看到,当他们在调试绘图的情况下破坏box2d中的对象时,形状也会被破坏.出于某种原因,我这样做:

world.DestroyBody(_body)它似乎没有做任何事情.形状停留在屏幕上.

以前有人有这个问题吗?这让我很担心,因为玩游戏一段时间后,我想破坏的所有物体都会留在屏幕上,并且仍会记录真正落后于游戏的碰撞.

任何帮助将非常感激,

谢谢,
威尔

编辑:[已决议]谢谢你们,这非常有道理.

Mat*_*ias 6

我在一些项目中遇到过这个问题.我认为当你试图移除Box2D引擎"正在使用"的物体时会发生这种情况.我通过将要销毁的实体添加到列表中然后在下一个渲染之前销毁它们来解决它.

// add body to list if it should be removed
if(shouldRemoveBody)
{
    _removeList.push(bodyToRemove);
}

// start next render with a check
if(_removeList.length > 0)
{
    // remove all bodies in list
}
Run Code Online (Sandbox Code Playgroud)