Добрый день.
Задание: В методе removeDeadBullets() класса SpaceInvadersGame необходимо удалить все пули из списка playerBullets, если пуля "неживая" ИЛИ сумма координаты y и поля height пули меньше нуля.
Валидатор не пропускает код:
private void removeDeadBullets() {
for (int i = 0; i<enemyBullets.size(); i++) {
//if (!enemyBullets.get(i).isAlive || enemyBullets.get(i).y >= HEIGHT - 1 || enemyBullets.get(i).y < 0) {
if (!enemyBullets.get(i).isAlive || enemyBullets.get(i).y >= HEIGHT - 1) {
enemyBullets.remove(i);
}
}
for (int i = 0; i<playerBullets.size(); i++) {
if (!playerBullets.get(i).isAlive || (playerBullets.get(i).y + playerBullets.get(i).height) < 0) {
//playerBullets.remove(i);
playerBullets.clear();
}
}
}
Подумал, что в формулировке задания ошибка и удалять нужно только текущую пулю, но следующий код тоже не проходит:
private void removeDeadBullets() {
for (int i = 0; i<enemyBullets.size(); i++) {
//if (!enemyBullets.get(i).isAlive || enemyBullets.get(i).y >= HEIGHT - 1 || enemyBullets.get(i).y < 0) {
if (!enemyBullets.get(i).isAlive || enemyBullets.get(i).y >= HEIGHT - 1) {
enemyBullets.remove(i);
}
}
for (int i = 0; i<playerBullets.size(); i++) {
if (!playerBullets.get(i).isAlive || (playerBullets.get(i).y + playerBullets.get(i).height) < 0) {
playerBullets.remove(i);
//playerBullets.clear();
}
}
}
Подскажите, пожалуйста, в чем проблема?
package com.javarush.games.spaceinvaders;
public enum Direction {
RIGHT,
LEFT,
UP,
DOWN
}