2017-06-04 3 views
-1

LibGDXのボディを破壊することはできません。私はすでにすべてを試しましたが、私はそれを得ていません。誰かが私に例を与えることができますか?LibGDXボディーを取り外すにはどうしたらいいですか?

よろしくTimux

だからここに私は体のオブジェクトを削除しようとするコードがあります。

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); 
    } 
} 

インターネットでは、イテレータを使用することができます。

Iterator<Body> iter = world.getBodies()

しかし、イテレータは「world.getBodies()は、」明らかに無効である配列を望んでいるし、それが赤のためのAndroid Studioが強調しています。

+0

、あなたのコードを示して? – Aryan

答えて

0

LibGDXのbodysの? 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 

EDIT

getBodies()はとても作成して渡す引数のようにBodyタイプArrayを必要とします。あなたが試したものを

Array<Body> bodies=new Array<Body>(); 

world.getBodies(bodies); 

for (Body body: bodies){ 
    world.destroyBody(body); 
} 
+1

オーケーirgendwie habe ichのES jetzt DOCH hinbekommen。ワルム・アウシュリーありがとうございました。 – UbuLin

関連する問題