DiNGS – программирование игр в домашних условиях. Часть 7
АрхивПрограммазм (архив)Работа с анимацией.
АНИМАЦИЯ – последовательность картинок создающих при быстром просмотре иллюзию движения.
Выберем объект, который и анимируем. Например, бабочку.
Нарисуем первое изображение – бабочка с распахнутыми крыльями.
Если размер первой картинки равен, например, 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.
Действительно мы анимировали картинку, но не сложно заметить - скорость с которой демонстрируется анимация превосходит все мыслимые скорости и пределы. Действительно все слишком быстро.
Необходимо замедлить. Но как?
Настало время рассказать о такой замечательной вещи, как счетчики. Благодаря им мы можем замедлить анимацию или движение и т.д.
В качестве упражнения добавьте в свою игру анимированную бабочку и назначьте ей движение через экран по алгоритму лифта.
Итак, счетчики…
(продолжение следует)