Приставки
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.1. Платформа

126 Устройства ввода

Проект Platform 127

Начнем работу над проектом 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(Window.ClientBounds.Width / 2, Window.ClientBounds.Height - 90);

По оси X выбирается место примерно посередине экрана, в целом это положение по оси может быть любым. Другое дело - положение платформы по оси Y. Нам нужно, чтобы платформа располагалась четко на тросе, который нарисован на фоновом изображении, поэтому от нижней части дисплея отнимается нужное количество пикселей и платформа встает точно на трос. Эта операция несложна -просто когда рисовался задний фон, а вместе с ним и трос, то было сразу просчитано количество необходимых пикселей. В любом случае, если вы ошибетесь и платформа не станет четко на трос, ее всегда можно подвинуть, изменив отнимаемое значение от высоты экрана.

При этом если бы я делал коммерческую игру из этого проекта, то обязательно добавил бы дополнительных красивостей. Например, платформу можно аними-ровать или приделать ей колесики, которые будут крутиться при движении. Сам трос можно сделать отдельным спрайтом и тоже анимировать, или отказаться от платформы и троса и создать мост, рельсы, помпу, лодку на воде, тележку, ковер-самолет, летающий в воздухе, или что-то еще, фантазировать на самом деле в этом плане можно до бесконечности.

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

public void MovePlatform() {

// Движение платформы влево и вправо if(keyboardState.IsKeyDown(Keys.Left))

platform.spritePosition.X -= 10;

else if (keyboardState.IsKeyDown(Keys.Right))

platform.spritePosition.X += 10;

// Обработка столкновений с левой и правой частью экрана if(platform.spritePosition.X < 10) platform.spritePosition.X = 10;

else if(platform.spritePosition.X > Window.ClientBounds.Width - 400) platform.spritePosition.X = Window.ClientBounds.Width - 400;


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

Горяченькое

Друзья

Hosted by uCoz