Давай сделаем так, чтобы анимация босса была постоянной. Для этого нам нужно добавить в метод setAnimatedView
параметр isLoopAnimation, отвечающий за бесконечность анимации. Этот параметр устанавливает соответствующее
значение полю loopAnimation. Если значение поля loopAnimation равно true, метод n
Игра Space Invaders (31/34)
- 3
- Недоступна
Комментарии (6)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Niqita)_ 25 уровень, Chelyabinsk
12 января, 05:36
457
0
Михаил Клименко 19 уровень, Краснодар Expert
29 июля 2020, 10:48
Всего эту задачу решили 300 учеников.
Грядет грандиозная космическая баталия :)
0
Максим Кобыляков 41 уровень
18 апреля 2019, 01:12
сейчас метод таков
public void nextFrame() {
frameIndex ++;
if (loopAnimation && frameIndex >= frames.size()) {
frameIndex = 0;
}
if (frameIndex < frames.size())
matrix = frames.get(frameIndex);
}
это валя приняла, но я не сказал бы что метод nextframe() ничего не делает - ибо он инкрементирует frameIndex. Надо видимо как то скорректировать это ребование:
Метод nextFrame() класса Ship не должен ничего делать, если значение frameIndex больше либо равно количеству фреймов в списке frames и loopAnimation равен false.
в итоге я нарешал это хуже всех или у меня понималка лажает
+7
Максим Кобыляков 41 уровень
18 апреля 2019, 01:16
кстати в этой связи родился вопрос что будет когда frameIndex достигнет maxInt?
0
Valery Lvov 20 уровень, Москва
7 июля 2020, 21:09
СПА - СИ - БО!
я этот метод переписывал раз пятьдесят, пытаясь сложить предыдущую реализацию и новые требования. И всегда у меня сначала стояла проверка "если значение frameIndex больше либо равно количеству фреймов в списке frames и loopAnimation равен false" - то return, а инкрементирование строго в else. Уфф, наконец-то прошел. СПАСИБО!
+2
Михаил Клименко 19 уровень, Краснодар Expert
29 июля 2020, 10:47
Как я понял, имелось ввиду "метод ничего не делает" конкретно после настоящих сравнений, не затрагивая старый код. В соответствии с этим дописал метод, как это требовалось в задании, почти так же, как у вас, только оба if() местами поменял. Валя без проблем пропустила :)
0