我在box2d中有很多具有相同BodyDef的物体,当我打电话时:
Array<Body> bodies = new Array<Body>();
world.getBodies(bodies);
for(Body b : bodies){
if(b.getPosition().y<-20f){
world.destroyBody(b);
}
}
它会用BodyDef摧毁所有尸体。
我该如何解决?
答案 0 :(得分:4)
您在这里没有引用任何BodyDef
。
world.destroyBody(b);
应该只销毁身体b
。只需确保您的if
条件正常。您也可以逐步调试(或在if
内放置一个日志),以检查销毁的实体数量是否与if
条件true
的时间相同。