Архивы: по дате | по разделам | по авторам

DiNGS – программирование игр в домашних условиях. Часть 7

АрхивПрограммазм (архив)
автор : Александр Супрунов   20.02.2003

Работа с анимацией.

АНИМАЦИЯ – последовательность картинок создающих при быстром просмотре иллюзию движения. Выберем объект, который и анимируем. Например, бабочку. Нарисуем первое изображение – бабочка с распахнутыми крыльями. Если размер первой картинки равен, например, 100х100 , то и все следующие должны иметь размер 100х100.
Рисуем вторую картинку, где крылья уже немного сместились к центру.
Рисуем третью картинку, где крылья еще сильнее сместились к центру.
Рисуем четвертую картинку, где крылья практически невидно на фоне тела.

Для примитивной анимации вполне достаточно 4-6 кадров, но мы то не собираемся плодить дерганый ужас вместо высококлассной анимации (ведь так?), поэтому мой совет: чем фаз анимации больше, тем лучше. Например, для супергероя из платформенной игры желательно только на анимацию ходьбы потратить не менее 16 кадров. Это долго и несколько утомительно, но результат вас действительно порадует. Герой будет прекрасно анимирован и можно гордо написать: в игре ультраплавная анимация. Не забываем фон картинки, который в игре не должен быть виден заливать цветом R:256 G:0 B:128.

Принцип анимации прост:
1. Показать изображение 1.
2. На том же месте долю секунды спустя показать изображение 2
3. И т.д.
4. Вернуться к пункту 1.

Что ж, и мы напишем:

// Загрузим графику в память

LOADSPRITE "babochka.bmp",0
LOADSPRITE "babochka2.bmp",1
LOADSPRITE "babochka3.bmp",2
LOADSPRITE "babochka4.bmp",3

// счетчик для номера картинки
i=0

// Начало игры

While Key(0)=1   

SPRITE i, 320, 240, 0  //Вывести спрайт i в координаты 320х240. 
i=i+1  
IF i=4 THEN i=0

SHOWCREEN
WEND

END

Вывести спрайт i в координаты 320х240. Увеличить i.
Если i=4, а у нас расположение картинок бабочки в памяти находиться только от 0 до 3, то снова присвоить i значение 0. То есть создаем бесконечный цикл. Вообще, прежде чем начать писать программу продумайте, где какие данные будут храниться. Например, фон, биты и шарика пусть хранятся в номерах от 0 до 50.
Призы – в номерах от 51 до 80.
Другие данные в номерах от 80 и выше. Нет никаких указаний, что нужно картинку с бабочкой располагать именно в номере памяти – 0. Можете расположить ее в номере 40, к примеру, но тогда строчка инициализации изменится на i=40, а строчка кода в блоке анимации на IF i=44 THEN i=40.

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

(продолжение следует)

© ООО "Компьютерра-Онлайн", 1997-2024
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.