【发布时间】:2014-02-02 15:29:31
【问题描述】:
我正在使用 LibGDX 制作射击游戏。当一颗子弹击中一个敌人时,我的代码有效。当多个敌人堆叠并且子弹的碰撞盒击中多个敌人碰撞盒时,游戏会崩溃并出现 线程“LWJGL Application”中的异常 java.lang.ArrayIndexOutOfBoundsException: -1
如果我错了,请纠正我,但我认为这是因为迭代器试图从子弹数组中移除与在该碰撞中杀死的敌人一样多的对象,而只有一颗子弹杀死三个敌人项目符号数组索引低于零导致异常。
我的问题是:如何修改循环/代码,即使有许多敌人“堆叠”并且一颗子弹同时击中多个敌人,一个敌人也会死于一颗子弹。谢谢。
bIter = bullets.iterator();
while(bIter.hasNext()){
b = bIter.next();
mIter = monsters.iterator();
while(mIter.hasNext()){
m = mIter.next();
if(m.getBounds().overlaps(b.getBounds())){
mIter.remove();
bIter.remove();
}
}
}
【问题讨论】:
标签: java iterator libgdx collision indexoutofboundsexception