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

Здесь мы используем метод Next(), с помощью которого при определении координаты по оси X задаем случайное значение в диапазоне от 50 пикселей до screenWidth - sprite.spriteTexture.Width / 12 — 50 или в числовом эквиваленте 1280 - один фрейм анимационной последовательности — 5 0 пикселей от кромки экрана для красоты, что позволяет нам при каждом новом определении места вывода спрайта на экране по оси X задавать новое значение в пределах видимой области экрана.

С выбором случайных значений для новой позиции спрайта игрок не будет знать, в каком месте должен выводиться спрайт на экран, и впоследствии не сможет приспособиться к вашей игре. Новое место будет всегда неожиданным как для игрока, так, собственно, и для вас, потому что используется метод Next() с двумя параметрами, задающими определенный диапазон значений. Дополнительные 50 пикселей, которые мы отняли от ширины дисплея с двух сторон, необходимы просто для красоты, дабы спрайты не рисовались вплотную к краям экрана телевизора.

Что касается задания координаты по оси Y, то она, как вы заметили, отрицательна. Это позволяет рисовать спрайт в верхней части экрана за пределами видимости. После чего спрайт мы перемещаем вниз (рис. 8.2). Таким образом достигается эффект плавного появления, или выезда спрайта из верхней части экрана и всего игрового пространства. Это красиво, эффектно, и если этого не делать и рисовать спрайт в положительных значениях оси Y, то объекты будут появляться резко и как бы ни с того ни с сего. Так делать нельзя, по крайней мере в нашей игре точно. В других играх могут быть свои задачи, поэтому этот подход имеет право на жизнь.

После создания метода MoveSprite() необходимо поместить вызов этого метода в метод Update(GameTime gameTime) класса Game1. Тогда на каждой итерации игрового цикла будет происходить вызов метода MoveSprite() и соответственно обновление состояния спрайта, а также обработка ситуации с выходом спрайта из зоны видимости. Исходный код проекта вы найдете на компакт-диске в папке Code\Chapter8\MoveSprite, а мы переходим к рассмотрению следующего проекта MoveSpriteArray.

8.2. Проект MoveSpriteArray

Задача этого проекта заключается в том, чтобы добавить в игру дополнительные объекты. Сделать это можно несколькими способами, но самый «продвинутый» и профессиональный способ сводится к организации простого массива данных. Поэтому в проекте MoveSpriteArray мы реорганизуем способ объявления и создания спрайта на создание массива данных, состоящего из пяти спрайтов. Для этого


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

Горяченькое

Друзья

Hosted by uCoz