我怎样才能删除 LibGDX 身体?
How can I remove in LibGDX bodys?
我无法销毁 LibGDX 中的任何 body。我已经尝试了一切,但我不明白。有人可以给我举个例子吗?
问候 Timux
所以这是我尝试删除 body object.
的代码
public class ObjectSpawner extends Timer {
public ObjectSpawner() {
scheduleTask(new Task() {
@Override
public void run() {
Objecte objecte = new Objecte(world);
objecte.getBody().applyForceToCenter((float) (200 + Math.random() * 300), 0, true);
worldController.objectArray.add(objecte);
for (Iterator<Body> iter = world.getBodies(); iter.hasNext();) {
Body body = iter.next();
if(body!=null) {
world.destroyBody(body);
body.setUserData(null);
}
}
for(Objecte o : worldController.objectArray) {
if(o.getBody().getPosition().y < camera.position.y) {
worldController.deleteBody(o.getBody());
}
}
}
}, 0, 0.5f);
}
}
在 Internet 上我看到可以使用迭代器。
Iterator<Body> iter = world.getBodies()
但是 Android Studio 将其用红色下划线标出,因为迭代器需要一个数组,而 "world.getBodies ()" 显然是一个空数组。
LibGDX 尸体?从 box2d
标签看来,您似乎想要破坏 box2d 主体。
World world=new World(new Vector2(0,-9.8f),true);
BodyDef bodyDef=new BodyDef();
bodyDef.position.set(100,100);
bodyDef.type= BodyDef.BodyType.DynamicBody;
Body body =world.createBody(bodyDef); // body created
PolygonShape polygonShape=new PolygonShape();
polygonShape.setAsBox(2,2);
body.createFixture(polygonShape,1);
world.destroyBody(body); // body destroyed
编辑
getBodies()
需要 Body
键入 Array
作为参数,因此创建并传递。
Array<Body> bodies=new Array<Body>();
world.getBodies(bodies);
for (Body body: bodies){
world.destroyBody(body);
}
我无法销毁 LibGDX 中的任何 body。我已经尝试了一切,但我不明白。有人可以给我举个例子吗?
问候 Timux
所以这是我尝试删除 body object.
的代码public class ObjectSpawner extends Timer {
public ObjectSpawner() {
scheduleTask(new Task() {
@Override
public void run() {
Objecte objecte = new Objecte(world);
objecte.getBody().applyForceToCenter((float) (200 + Math.random() * 300), 0, true);
worldController.objectArray.add(objecte);
for (Iterator<Body> iter = world.getBodies(); iter.hasNext();) {
Body body = iter.next();
if(body!=null) {
world.destroyBody(body);
body.setUserData(null);
}
}
for(Objecte o : worldController.objectArray) {
if(o.getBody().getPosition().y < camera.position.y) {
worldController.deleteBody(o.getBody());
}
}
}
}, 0, 0.5f);
}
}
在 Internet 上我看到可以使用迭代器。
Iterator<Body> iter = world.getBodies()
但是 Android Studio 将其用红色下划线标出,因为迭代器需要一个数组,而 "world.getBodies ()" 显然是一个空数组。
LibGDX 尸体?从 box2d
标签看来,您似乎想要破坏 box2d 主体。
World world=new World(new Vector2(0,-9.8f),true);
BodyDef bodyDef=new BodyDef();
bodyDef.position.set(100,100);
bodyDef.type= BodyDef.BodyType.DynamicBody;
Body body =world.createBody(bodyDef); // body created
PolygonShape polygonShape=new PolygonShape();
polygonShape.setAsBox(2,2);
body.createFixture(polygonShape,1);
world.destroyBody(body); // body destroyed
编辑
getBodies()
需要 Body
键入 Array
作为参数,因此创建并传递。
Array<Body> bodies=new Array<Body>();
world.getBodies(bodies);
for (Body body: bodies){
world.destroyBody(body);
}