public int verifyHit(List<Bullet> bullets) {
int summaScore = 0;
for (Bullet bullet : bullets) {
for (Ship ship : ships) {
if (bullet.isCollision(ship)) {
if (bullet.isAlive && ship.isAlive) {
bullet.kill();
summaScore += ships.get(1).score; //вот эта строка компилируется нормально, т.е. если бы я делал обычный for то все бы работало
summaScore += ship.score; //вот в этой строке score идея подчеркивает красным, как несуществующую переменную.
ship.kill();
}
}
}
}
return summaScore;
Veryprosto
35 уровень
Почему при цикле foreach я не могу получить доступ к переменной к которой легко получаю доступ если использовать обычный for
Решен
Комментарии (1)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Veryprosto
28 октября 2019, 18:08
все, пока писал вопрос, понял! Я форич делаю Ship ship : ships
класс Ship - суперкласс. а ships - список объектов класса EnemyShip наследника.
соответственно переменную isAlive видно так как она есть в Ship, a score - переменная только наследника.
Исправил Ship ship : ships на EnemyShip ship : ships и все заработало! всем спасибо за внимание!
+5