Я пытаюсь сделать базовый c платформер в java, но у меня возникают проблемы при попытке заставить игрока стрелять. В частности, я получаю исключение OutOfBoundsException при движении и съемке в одном направлении. Я использую ArrayList
пуль. Вот мой код в основной игре l oop:
for (int i = 0; i < attack.size(); i++) {
Attacks p = attack.get(i);
if (p.isVisible() == true) {
p.update();
for (int j = 0; j < enemies.size(); j++)
checkCollisionAttacks(p, enemies.get(i));
for (int k = 0; k < platforms.length; k++) {
checkCollisionAttacks(p, platforms[i]);
}
} else {
removeAttacksList.add(p);
}
}
removeAttacks();
Вот мой removeAttacks
метод:
for (int i = 0; i<removeAttacksList.size(); i++) {
attack.remove(removeAttacksList.get(i));
System.out.println("removed");
}
removeAttacksList.clear();
Я первоначально убрал пули в checkCollisionAttacks
метод, но потом подумал, что это может быть причиной ошибки, поскольку я эффективно изменяю ArrayList
, поскольку l oop продолжается, поэтому я добавил все удаляемые маркеры в removeAttacks
, чтобы удалить их после l oop заканчивается. Тем не менее, я все еще получаю эту ошибку при движении и съемке в одном направлении. Почему это могло произойти?