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

Глава 8

Движение спрайтов _в пространстве

Одной из главных составляющих любой игры является перемещение объектов в игровом пространстве. Часть таких объектов может перемещаться в соответствии с командами, получаемыми от пользователя через устройство ввода информации (клавиатура, джойстик или мышь). Как правило, это либо главный герой игры, либо определенный инструмент, играющий главную роль в игровом процессе, как это задумано в нашей игре. Как вы помните, у нас в качестве такого инструмента выступает ковер-самолет, парящий над пропастью и ловящий различные падающие объекты.

Другая часть объектов игры может перемещаться на основе своей логики, запрограммированной создателем. Такая логика в играх называется игровым искусственным интеллектом. В этой главе мы наделим наши игровые объекты простейшими алгоритмами игровой логики, научив их перемещаться в заданном направлении, а также выбирать себе случайное место в игровом пространстве. Использование более мощных алгоритмов искусственного интеллекта в нашей игре не понадобится, но если вы интересуетесь этим вопросом серьезно, то рекомендую вам изучить книгу издательства «ДМК Пресс» «Программирование искусственного интеллекта в приложениях», автор М. Тим Джонс.

Итак, что такое движение в пространстве? Каждый спрайт при выводе на экран телевизора получает свои координаты по двум осям X и Y, например:

Vector2 spritePosition = new Vector2(l00, 300);

Также может иметь место и следующая запись:

Vector2 spritePosition; spritePosition.X = l00; spritePosition.Y = 300;

В этих строках кода позиция для спрайта задается по оси X в 100 пикселей (от левого верхнего угла экрана) и по оси Y в 300 пикселей вниз все от того же верхнего левого угла. Чтобы переместить спрайт в заданном направлении, необходимо просто изменять (увеличивать или уменьшать) позицию спрайта. То есть если вы желаете переместить спрайт сверху вниз (только по оси Y), то необходимо на каждой итерации игрового цикла (один такт) или в один проход исходного кода мето-

Движение спрайтов в пространстве 153

да Update() класса Gamel увеличить позицию спрайта на определенное количество пикселей, например:

// Обновляем состояние игры

protected override void Update(GameTime gameTime) {

spritePosition.Y += 3;

}

В этом примере мы на каждой итерации игрового цикла, то есть за один такт, увеличиваем позицию спрайта на 3 пикселя. Циклическое увеличение позиции спрайта по оси Y на 3 пикселя в каждой итерации игрового цикла (перерисовка спрайта на новом месте) создаст эффект движения спрайта по экрану сверху вниз.


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

Горяченькое

Друзья

Hosted by uCoz