我正在用java製作基本遊戲。在遊戲中,你是一個街區,通過使用按鍵(上,下等),你應該射擊敵人。這也是一個塊。我有兩個對象之間的工作碰撞,它的工作原理。但是,當子彈擊中敵人時,它應該消失。當所有的敵人都「被殺死」時,你就贏了。這基本上是我迄今爲止得到的。碰撞時從ArrayList中移除對象
ArrayList<Enemy> enemy;
ArrayList<Bullet> bullets;
[...]
public void collision(){
for(Bullet b : bullets){
Rectangle r1 = b.getBounds();
for(Enemy e : enemy){
Rectangle r2 = e.getBounds();
if(r1.intersects(r2)){
enemy.remove(e);
}
}
}
的敵人是由一個.txt
else if(mark == 'E'){
enemies.add(new Enemy(x * 20 + 10, y * 20 + 35, 40));
}
所以催生當你打敵人子彈我在for(Enemy e : enemy){
得到java.util.ConcurrentModificationException首先但是如果我打敵人按照特定的順序我可以刪除除1個敵人以外的所有敵人。然後發生錯誤。碰撞方法被放置在「gameloop」中。
快速哈克:'列表 enemy = new CopyOnWriteArrayList ();' –
downvoted因爲您沒有(完全)讀取'ConcurrentModificationException'的文檔。 –