PDA

Просмотр полной версии : Анимация программно


TexHuK
22.02.2011, 12:01
Здравствуйте, очередной раз задаю вопрос вам, профессионалам и не разу не получил от вас ответа в виде "гугл рулит", "поиск", "или какой-нибудь издевки ", это говорит о том, что люди тут действительно образование и знают свое дело, за что вам огромное спасибо! С вами очень приятно учиться и общаться на эти темы :rolleyes:

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

in4core
22.02.2011, 12:45
Странный на самом деле вопрос, скорее непонятно что именно вы хотите. Но если верно понял, такие вещи лучше делать вручную, создал мувиклип, в нем создал перс-анимацию. Расставил метки на кадрах типа позиций UP, SNAKE, JUMP и т.д. И потом уже добавляем класс в основной и работаем с ним по меткам. В другом случае, можно разбить анимацию на несколько клипов в зависимости от действия, и в нужный момент добавлять или удалять класс действий. Но в данный момент если действий много, дабы не запариваться с постоянныйм удалением и добавлением, а особенно если анимация не нагруженная - используем 1 клип как я написал вначале.

TexHuK
22.02.2011, 12:50
в том-то и дело, я не использую Flash CS, я работаю чисто в FD
а имею в виду это:
http://skill.ru/users/TexHuK/storage/spaceman.png
т. е. брать из него кусочки, и вставлять наверное в массив.
Вопрос собственно как брать эти кусочки?

КорДум
22.02.2011, 12:58
Спрайты, значит. Ну, я полагаю, нужно разрезать битмапу на части. Это BitmapData#copyPixels, как я понимаю. Также можно каждый кадр сдвигать битмапу под маской, но это извращенство, как мне кажется.

zuxul
22.02.2011, 14:11
Либо использовать Graphics#beginBitmapFill (http://help.adobe.com/ru_RU/AS3LCR/Flash_10.0/flash/display/Graphics.html#beginBitmapFill())

goodguy
22.02.2011, 15:19
Я реалиовывал через copyPixels(). Задавал нужный прмоугольник, из которого будут копироваться пиксели, для каждого кадра, и покадрово врисовывал нужный кусок картинки

DanQuimby
22.02.2011, 15:27
пользуюсь вот таким классом , в общем доволен , я его не много подработал, но в принципе
тебе должно подойти , примеры там есть
тык (http://blog.hexagonstar.com/animatedbitmapclass/)

TexHuK
22.02.2011, 16:15
Всем большое спасибо :)
DanQuimby, класс просто супер, то что надо)

tsarapkabel
23.02.2011, 20:13
А я вот видел как в такой ситуации использовали scrollRect (http://help.adobe.com/ru_RU/AS3LCR/Flash_10.0/flash/display/DisplayObject.html#scrollRect)!
http://help.adobe.com/ru_RU/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7e17.html

Котяра
24.02.2011, 00:39
Тоже использую измененный AnimatedBitmap.