Как вы видите, препятствия на пути цыпленка – это четыре автомобиля, проезжающие вверх и вниз по шоссе. Автомобили движутся с изменяющимися скоростями, что делает игру более привлекательной. В отличие от Frogger, в которой вам необходимо провести лягушку в определенные места на экране, в Henway вы просто должны перевести цыпленка через дорогу.
В копилку Игрока
Обратите внимание, что все рассматриваемые в книге примеры очень просты. Хотя есть множество способов усовершенствовать игры, я к этому не стремлюсь, оставляя вам поле для деятельности. Моя цель – показать простой для понимания, работающий пример мобильной игры, которую вы сможете дополнить интересными для вас деталями. В конце большинства глав я подкину вам несколько идей, как сделать игры более привлекательными.
Вы начинаете игру с тремя цыплятами. Как только вы переведете всех цыплят через шоссе, игра закончится. Важно где-нибудь на экране показать, сколько цыплят осталось переправить через дорогу. Кроме того, при потере цыпленка или удачном преодолении шоссе следует вывести какое-нибудь сообщение. Не помешает и система подсчета очков, чтобы вознаградить вас за хорошую игру.
Анализ игры
Обзор игры, приведенный чуть ранее, уже определил некоторые элементы игры, даже если вы этого и не заметили. Например, вы уже догадались, сколько спрайтов нужно для игры? В игре будет пять спрайтов: четыре автомобиля и цыпленок. Но можно и увеличить число автомобилей, чтобы усложнить игру, однако в этом примере будет лишь четыре машины.
А теперь вы сможете догадаться, сколько растровых изображений вам понадобится? Если вы сказали шесть, то вы очень близки к правильному ответу. Ниже перечислены семь спрайтов, необходимые в игре:
► фоновое изображение шоссе;
► изображение цыпленка (рис. 7.2);
Рис. 7.2. Изображение цыпленка состоит из двух фреймов, на которых цыпленок идет вправо
► четыре изображения автомобилей (рис. 7.3);
► маленькое изображение головы цыпленка (рис. 7.4).
Вы, вероятно, посчитали все эти изображения за исключением последнего. Маленькое изображение головы цыпленка используется, чтобы сообщить игроку, сколько жизней осталось. Например, в начале игры в нижнем правом углу экрана отображаются три маленьких головы цыпленка. Если цыпленок погибает под колесами автомобиля, то число жизней уменьшается на одну; игра продолжается до тех пор, пока хоть один цыпленок жив.
Теперь, когда вы имеете представление о графических объектах, используемых в игре, давайте рассмотрим, что еще нужно для игры. Во-первых, очевидно, понадобится отслеживать число жизней. Также, вероятно, вы захотите увеличивать число очков, если цыпленок удачно преодолел шоссе. Булевская переменная будет следить, завершена игра или нет.
Есть еще одна переменная, о необходимости которой можно сказать, прежде чем приступить к разработке и тестированию. Я говорю о задержке считывания ввода, эта величина поможет улучшить реакцию на пользовательский ввод. Если в каждом игровом цикле будет реакция на нажатия клавиш, то цыпленок будет перемещаться по экрану с неимоверной скоростью. Чтобы ограничить скорость его перемещения и понизить частоту обработки ввода, вы можете ввести специальную переменную и проверять нажатые клавиши, например, на каждом третьем игровом цикле.