Приставки
Nintendo (Dendy)
Nintendo 64
Sega Genesis
Sega CD / 32x
Master System
Super Nintendo
Turbo Grafx 16
Sega Saturn
Sony PlayStation
GameBoy Advance
GameBoy / Color
Game Gear
Atari
Другие

Утилиты
Системные утилиты
GoodXXXX
Sega CD / 32x
Nintendo 64
Переводы, хакинг
Музыка

Мир приставочных игр

Версия 2.00a

Leonis © 2002-2009
Команда Новости Помощь Ссылки
ПОМОЩЬ
Литература про игры
Предыдущая Следующая

Затем в методе 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;


Предыдущая Следующая

Горяченькое

Друзья

Hosted by uCoz