我在 Box2D 中有很多具有相同 BodyDef 的物体,当我调用: Array<Body> bodies = new Array<Body>(); world.getBodies(bodies); for(Body b : bodies){ if(b.getPosition().y < -20f) { world.destroyBody(b); } } 这会使用BodyDef破坏所有物体。 我该怎么修复呢?
这里没有引用任何BodyDef。 world.destroyBody(b); 应该仅销毁主体b。确保您的if条件正确。您还可以逐步调试(或在if中放置日志),以检查销毁的主体数量是否与if条件为true的次数相同。
System.out.println(b.getPosition().y);
但它总是打印出0.0,尽管所有的物体都有不同的位置。你知道为什么吗? - Mustafa