Я делаю 2D и в настоящее время работаю над стрельбой пулями.Пуля это отдельный класс.Все пули хранятся в массиве, называемом пулями.Я пытаюсь заставить его уничтожить себя, когда он находится за пределами экрана (<-16), но при попытке это выдает мне эту ошибку.</p>
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(Unknown Source)
at java.util.AbstractList$Itr.next(Unknown Source)
at GameCanvas.updateMovement(GameCanvas.java:94)
at GameCanvas.gameLoop(GameCanvas.java:63)
at GameCanvas.<init>(GameCanvas.java:28)
at GameClient.<init>(GameClient.java:68)
at GameClient.main(GameClient.java:29)
Я предполагаю, что это как-то связано с уничтожением, я использую этот код для его уничтожения:
public void move() {
if(x > -16) {
x -= move_speed;
} else {
kill();
}
}
public void kill() {
ObjectHandler.bullets.remove(this);
}
updateMovement () метод:
public void updateMovement() {
PlayerObject.update();
for(Bullet bullet : ObjectHandler.bullets) {
bullet.move();
}
}
Почему он это делает?Благодаря.