► изображение пришельца Timmy (рис. 18.5);
► изображение ракеты, содержащее различные фреймы, – ракеты игрока и ракеты пришельца (рис. 18.6);
► анимационное изображение взрыва (рис. 18.7);
► маленькое изображение автомобиля (рис. 18.8).
Эти изображения определены самим дизайном игры, речь о котором шла ранее, поэтому здесь не должно быть ничего удивительного. Стоит отметить, что спрайты пришельцев являются анимационными (рис. 18.3—18.5), что делает героев интереснее. Другой традиционный для игр спрайт – это анимационный спрайт взрыва (рис. 18.7).
В игре Space Out используется традиционный анимационный спрайт и для изображения ракеты (рис. 18.6). Изображение содержит несколько фреймов анимации, но каждый фрейм – это отдельный тип ракеты, а не кадр анимации. Иначе говоря, фреймы изображения ракет никогда не выводятся последовательно, как в случае с обыкновенными анимационными изображениями. Напротив, каждый фрейм изображения – это отдельный тип ракеты. Четыре типа ракеты – это ракеты игрока и трех пришельцев.
Другие важные элементы игры Space Out – это счет, который необходимо вести во время игры, а также число жизней (автомобилей). Игра завершается, когда уничтожены все четыре автомобиля. Сложность игры хранится в переменной и увеличивается по мере уничтожения пришельцев игроком. Другое важное хранилище информации – это переменная булевского типа, которая отслеживает, завершена ли игра.
Итак, разработка игры привела нас к следующим важным аспектам, которыми необходимо управлять во время игры:
► число оставшихся жизней (автомобилей);
► счет;
► булевская переменная, отслеживающая окончание игры.
Эта информация отражает ядро игровых данных, которые необходимо отслеживать во время игры. Помните, что игровые спрайты – очень важный компонент состояния игры. Зная это, вы можете перейти к проработке кода игры Space Out. Так же, как и игра High Seas, созданная в главе 12, игра Space Out потребует значительных сил, но труд будет вознагражден! Вы увидите!
Реализация игры
Структура игры аналогична структуре игр, разработанных ранее. В следующих разделах вы разработаете код и ресурсы игры.
Создание движущихся спрайтов
Разработку игры Space Out начнем с создания нового класса спрайтов, который будет использоваться в игре для реализации движущихся спрайтов. Этот класс MovingSprite аналогичен классу DriftSprite из главы 12 за исключением того, что в первом будут использоваться компоненты X и Y скорости, а также обрабатываться столкновения спрайта со стенкой экрана.
Любой спрайт в итоге может достичь края экрана, и в этом случае возможны несколько вариантов. Например, в игре Pong спрайт, достигающий границы экрана, отскакивает от нее. В игре Asteroids при достижении границы экрана спрайт может появиться у противоположной стороны. В некоторых играх спрайт просто замирает или уничтожается (скрывается). Все эти возможности реализует класс MovingSprite. Давайте перечислим эти возможности снова: