Приставки
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
Команда Новости Помощь Ссылки
ПОМОЩЬ
Литература про игры
Предыдущая Следующая

9.2. Проект Platform

По задумке, в нашей игре мы обязаны ловить всех людей, падающих с неба в пропасть, с помощью ковра-самолета. Дополнительно с неба, кроме людей, также падают различные запчасти сгоревшего самолета, и от этих частей нам необходимо уворачиваться. Ковер-самолет находится в нижней части экрана и парит горизонтально на одном уровне. Чтобы управлять ковром-самолетом, нам необходимо использовать джойстик приставки Xbox 360.

Изображение ковра-самолета состоит из одного фрейма, а это значит, что применяется неанимированный спрайт (рис. 9.3). Сам рисунок располагается в рабочем каталоге проекта в папках Content\Textures, а механизм добавления графического изображения в проект остается прежним.

Проект Platform 175

Рис. 9.3. Ковер-самолет

Начнем работу над проектом Platform и добавим в исходный код класса Gamel в область глобальных переменных объявление нового объекта platform класса Sprite.

Sprite platform;

Объект platform не будет анимированным, поэтому при создании объекта используется неанимированный конструктор класса Sprite.

platform = new Sprite();

Затем в методе LoadGraphicsContent() класса Sprite происходит загрузка изображения ковра-самолета в игру.

platform.Load(content, «Content\\Textures\\platform»);

Далее ковру-самолету в методе Initialize() класса Sprite задается позиция на экране телевизора.

platform.spritePosition = new Vector2(screenWidth / 2, screenHeight - 90);

По осям X и Y выбирается место примерно посередине экрана и в его нижней части, но в целом это положение по оси Х может быть любым.

Для реализации движения ковра-самолета на экране в классе Gamel создается метод MovePlatform(), код которого выглядит следующим образом:

public void MovePlatform() {

GamePadState currentState = GamePad.GetState(Playerlndex.One); if (currentState.IsConnected)

{

if (currentState.ThumbSticks.Left.X < -0.5f)

platform.spritePosition.X -= 15; else if (currentState.ThumbSticks.Left.X > 0.5f)

platform.spritePosition.X += 15;

if (platform.spritePosition.X < 30) platform.spritePosition.X = 30; else if (platform.spritePosition.X > screenWidth — platform.spriteTexture.Width -30) platform.spritePosition.X = screenWidth — platform.spriteTexture.Width — 30;}

}

В начале исходного кода метода MоvеР1atfоrш() мы создаем новый объект сurrеntБtatе структуры GaшеРaCБtatе для получения текущего состояния

176 Работа с джойстиком

джойстика. Метод GetState() в качестве параметра получает значение Playerlndex.One, что означает получение событий с одного, а точнее с первого подключенного джойстика к приставке. Как вы помните, к приставке можно подключить одновременно четыре джойстика, но какой бы по счету лично для вас джойстик ни был, всегда первый подключенный джойстик к приставке идет под индексом Playerlndex.One, второй - под индексом Playerlndex.Two, третий- Playerlndex.Three и четвертый - Playerlndex.Four. Здесь важна очередность подключения джойстиков к приставке.


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

Горяченькое

Друзья

Hosted by uCoz