Проблемы со стрельбой для платформерной игры - PullRequest
0 голосов
/ 18 января 2020

Я пытаюсь сделать базовый 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 заканчивается. Тем не менее, я все еще получаю эту ошибку при движении и съемке в одном направлении. Почему это могло произойти?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...