我正在android上学习libGDX。我试图在碰撞后从世界中移除身体。但是,有些时候,尸体并没有立即移除,需要 2-3 秒才能正确移除。
private void deleteDeadBodies(){
Iterator<Body> i = world.getBodies();
Body node=i.next();
while (i.hasNext()) {
Body oBj=node;
node=i.next();
if(oBj.getUserData() == Constants.BodyType.DESTROY){
removeBodySafely(oBj);
}
}
}
private void removeBodySafely(Body body) {
final ArrayList<JointEdge> list = body.getJointList();
while (list.size() > 0) {
world.destroyJoint(list.get(0).joint);
}
world.destroyBody(body);
}
我在世界步进函数之后调用 deleteDeadBodies() 。我的世界步参数是,
public static final float BOX_STEP = 1/80f;
public static final int BOX_VELOCITY_ITERATIONS = 6;
public static final int BOX_POSITION_ITERATIONS = 2;
任何人都可以在这里帮助我吗?