sprite.setPosition(-sprite.getWidth, sprite.getY);
if (sprite.getY < -sprite.getHeight)
sprite.setPosition(sprite.getX, getHeight);
else if (sprite.getY > getHeight)
sprite.setPosition(sprite.getX, -sprite.getHeight);
}
else {
// остановить спрайт у края экрана
if (sprite.getX < 0)
sprite.setPosition(0, sprite.getY);
else if (sprite.getX > (getWidth – sprite.getWidth))
sprite.setPosition(getWidth – sprite.getWidth, sprite.getY);
if (sprite.getY < 0)
sprite.setPosition(sprite.getX, 0);
else if (sprite.getY > (getHeight – sprite.getHeight))
sprite.setPosition(sprite.getX, getHeight – sprite.getHeight);
}
}
}
Я надеюсь, что длина приведенного кода вас не испугала. Если вы потратите немного времени на его изучение, то поймете, что вы уже с ним знакомы. В этом листинге просто собраны все элементы кода, рассмотренные ранее.
Класс HenwayMIDlet – это класс мидлета, который создает экземпляр класса HCanvas. По этой причине я опущу рассмотрение кода класса мидлета. Помните, что полный код мидлета Henway, а также прочих программ, рассматриваемых в книге, можно найти на прилагаемом компакт-диске.
Тестирование игры
Игру Henway намного веселее тестировать, чем программу UFO. Henway – это первая созданная вами полноценная игра, что делает этот мидлет очень привлекательным для пользователя.
Это экшн-игра, такие игры необходимо тщательно тестировать, потому что сложно предугадать, как поведет себя спрайт в той или иной ситуации. Вы должны немного поиграть в игру и убедиться, что ничего из ряда вон выходящего не происходит.
На рис. 7.5 показано начало игры, ваш храбрый цыпленок готов к переходу через шоссе.
Чтобы начать игру, просто проведите вашего цыпленка через дорогу, для чего используйте клавиши со стрелками на мобильном телефоне (или клавиши со стрелками на клавиатуре). Если вы успешно перевели цыпленка через шоссе, ваш счет увеличится на 25 очков.
Конечно, даже лучшие игроки Henway рано или поздно теряют цыпленка под колесами автомобиля. Когда такое случается, подается звуковой сигнал, а цыпленок возвращается на старт. Еще более важно, что игрок видит, что число жизней уменьшилось (рис. 7.6).
Совет Разработчику
Если вы обнаружите, что реакция на нажатия клавиш на клавиатуре очень замедлена, попробуйте уменьшить значение переменной inputDelay до 1. Это поможет увеличить скорость обработки ввода на треть.
Если вы потеряете всех трех цыплят, то игра заканчивается. На рис. 7.7 показан конец игры, на экране просто выводится ваш счет и строка «game over» (игра закончена).
Рис. 7.7. Если вы потеряли всех цыплят, то игра закончена