Предыдущая Следующая
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. Здесь важна очередность подключения джойстиков к приставке. Предыдущая Следующая
|