我在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)
答案 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!");
}
}
}