Предыдущая Следующая
Затем в методе MovePlatform() следует строка кода.
if(currentState.IsConnected)
Эта простейшая конструкция кода позволяет определить, подключен джойстик к приставке или нет. Своего рода подстраховка для системы, на случай если джойстик по каким-то причинам отключится от приставки, но код будет работать и без этой проверочной строки.
Оставшаяся часть кода метода MovePlatform() состоит из двух независимых блоков исходного кода. В первом блоке происходит обработка нажатий левого рычажка GamePadThumbSticks.Left влево и вправо. Для обработки получаемых событий используется конструкция кода if/else. В переводе на русский язык эта конструкция кода обозначает следующее:
Если GamePadThumbSticks.Left нажат в левую сторону, то: Позиция ковра-самолета по оси X уменьшается на 10 пикселей А если GamePadThumbSticks.Left нажат в правую сторону, то: Позиция ковра-самолета по оси X увеличивается на 10 пикселей
Уменьшение или увеличение позиции по оси X приводит к движению ковра-самолета по горизонтали влево и вправо. Заданная скорость в размере lO пикселей за один кадр тестировалась много раз и оказалась наиболее удачным значением.
Второй блок исходного кода обрабатывает ситуацию выхода ковра-самолета за пределы экрана с левой и правой сторон. Если такое условие имеет место, то по оси X спрайту присваивается значение, равное соответственно левой или правой кромке экрана + 30 пикселей (для красоты). В этом случае спрайт при столкновении с двумя крайними точками экрана остается на месте без движения. Делается это для того, чтобы ковер не уезжал из нашей области видимости и все время оставался на экране.
Метод MovePlatform() вызывается в методе Update() класса Game1, где происходит постоянное обновление состояния игры. В конце исходного кода класса Game1 в методе Draw() ковер-самолет рисуется на экране. Полный исходный код класса Game1 представлен в листинге 9.1. На компакт-диске рассмотренный пример находится в папке Code\Chapter9\ Platform.
//=========================================================================
/// <summary>
Проект Platform 177
/// Листинг 9.1
/// «Программирование игр для приставки Xbox 360 в XNA Game Studio Express»
/// Автор книги: Горнаков С. Г.
/// Глава 9
/// Проект: Platform
/// Класс: Gamel
/// Добавляем ковер-самолет
/// <summary>
//=========================================================================
#region Using Statements using System; Предыдущая Следующая
|