2017-05-21 20 views
0

私はlibGDX用のアンドロイドスタジオのプロジェクトを持っています。私はプレーヤークラスでこの衝突システムを使用していました。しかし、私がBulletクラスをチェックインすると、うまく動作せず、エラーが出ます!更新メソッドでlibGDXの衝突が正しく機能していません

( '日' がところでエンティティマネージャである) (em.entitiesは、ArrayListののlibgdxのバージョンである配列である)

for (Entity e : em.entities) { 
    if (e instanceof Enemy) { 
     if (getBounds().contains(e.getBounds())) { 
      System.out.println("Collided!"); 
     } 
    } 
} 

これはエラーです:

Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: #iterator() cannot be used nested. at com.badlogic.gdx.utils.Array$ArrayIterator.hasNext(Array.java:550) at com.thechief.game.entities.EntityManager.update(EntityManager.java:35) at com.thechief.game.screen.GameScreen.update(GameScreen.java:29) at com.thechief.game.Main.render(Main.java:50) at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:225) at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:126)

答えて

0

ドンネストされたループでは許可されていないので、イテレータを使用しないでください。イテレータの代わりに伝統的なforループを使用するだけです。

for(int i=0;i<em.entities.size;i++){ 
    Entity e=em.engities.get(i); 
    if (e instanceof Enemy) { 
     if (getBounds().contains(e.getBounds())) { 
       System.out.println("Collided!"); 
     } 
    } 
} 
関連する問題