如何在box2d中正确删除物体?

问题描述 投票:3回答:1

[在Box2D中,当我打电话时,我有很多具有相同BodyDef的物体:

Array<Body> bodies = new Array<Body>();
world.getBodies(bodies);
for(Body b : bodies){
    if(b.getPosition().y < -20f) {
        world.destroyBody(b);
    }
}

它用BodyDef摧毁了所有尸体。

我该如何解决?

java box2d libgdx
1个回答
6
投票

您在这里没有引用任何BodyDef

world.destroyBody(b);

仅应销毁尸体b。只要确保您的if条件正常即可。您也可以逐步调试(或在if内放一个日志),仅检查销毁的尸体数量是否与if条件为true的次数相同。

© www.soinside.com 2019 - 2024. All rights reserved.