libGDX的碰撞在我的更新方法中无法正常工作

时间:2017-05-21 17:27:19

标签: java android libgdx

我在android studio for libGDX中有一个项目。我在我的播放器类中使用了这个碰撞系统而且它有效!但是当我检查我的Bullet类时,它不起作用并给我一个错误!

('em'是实体经理btw) (em.entities是一个Array,它是libgdx的ArrayList版本)

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

这是错误:

  

线程“LWJGL Application”中的异常com.badlogic.gdx.utils.GdxRuntimeException:#iterator()不能使用   嵌套。       at com.badlogic.gdx.utils.Array $ ArrayIterator.hasNext(Array.java:550)       在com.thechief.game.entities.EntityManager.update(EntityManager.java:35)       在com.thechief.game.screen.GameScreen.update(GameScreen.java:29)       在com.thechief.game.Main.render(Main.java:50)       在com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:225)       在com.badlogic.gdx.backends.lwjgl.LwjglApplication $ 1.run(LwjglApplication.java:126)

1 个答案:

答案 0 :(得分: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!");
         }
    }
}