break;
}
}
Метод addMissle()принимает спрайт игрока в качестве единственного параметра, создается эффект запуска ракеты указанным спрайтом.
Основная хитрость этого метода – определение типа запускаемой ракеты. Необходим простой и надежный метод определения типа спрайта, запускающего ракету. Хитрость заключается в том, чтобы проверять скорость Х спрайта, поскольку каждый спрайт имеет уникальное значение этой составляющей скорости. Следовательно, оператор условного перехода switch использует именно эту величину для определения типа добавляемой ракеты.
Процесс добавления ракеты содержит следующие этапы:
1. найти подходящий спрайт, который еще невидим;
2. выбрать нужный фрейм спрайтового изображения;
3. поместить ракету в точку, находящуюся рядом с запускающим спрайтом;
4. установить скорость ракеты в зависимости от ее типа;
5. показать ракету.
И наконец, мы подходим к последнему методу игры Space Out, очень похожему на рассмотренные ранее методы addAlien() и addMissle(). В листинге 18.7 приведен код метода addExplosion().
Листинг 18.7. Метод addExplosion() класса SOCanvas добавляет взрыв при разрушении спрайтаprivate void addExplosion(MovingSprite sprite) {
for (int i = 0; i < 3; i++)
if (!explosionSprite[i].isVisible()) {
// Add an explosion where the moving sprite is located
explosionSprite[i].setFrame(0); //Проверка, что анимация взрыва начинается с первого фрейма
explosionSprite[i].setPosition(sprite.getX(), sprite.getY());
explosionSprite[i].setVisible(true);
break;
}
}Этот метод добавляет спрайт взрыва на место указанного спрайта игрока или пришельца. Ниже перечислены шаги, выполняемые при добавлении спрайта взрыва:
1. найти подходящий спрайт взрыва, который еще не задействован;
2. установить номер первого фрейма анимации – 0;
3. разместить спрайт взрыва в центре уничтоженного спрайта;
4. показать взрыв.
Метод addExplosion() завершает код игры Space Out. Я представляю, что к разработке кода были приложены титанические усилия, но следующий раздел вознаградит ваши старания!
Тестирование игры
Я уже много раз говорил, что тестирование – это один из самых веселых этапов тестирования игры, а теперь вы подошли к тестированию совершенно новой игры. Подобно игре High Seas, игра Space Out требует значительного времени на тестирование из-за большого числа взаимодействий игровых спрайтов. Самое хорошее, что для тестирования надо просто поиграть в Space Out. На рис. 18.9 показано начало игры, пришелец запускает ракету, автомобиль отвечает огнем.
Автомобиль можно перемещать, нажимая клавиши Влево или Вправо, чтобы запустить ракету – необходимо нажать клавишу Огонь (клавиша ввода на клавиатуре, если вы используете эмулятор). Если вы попадете в пришельца, то он взорвется (рис. 18.10).
В итоге, вы окажетесь на опасной территории под атакой пришельцев, они попадают в автомобиль, на месте которого появляется взрыв (рис. 18.11).