![]() |
Как правильно создать анимацию персонажа
Недавно начал осваивать AS3, для этих целей использую FlashDevelop.
И конечно хочется написать хоть простенькую но СВОЮ игру. Мне все было понятно до этого момента :) Суть вопроса в том, как правильно сделать анимацию персонажа. Например есть две картинки с ходьбой человека, на одной правая нога впереди левая рука сзади на другой наоборот. Как организовать чтобы они менялись? Какие средства для этого нужны? И так ли вообще должна происходить анимация или есть другой способ? |
|
Нуу, да для описанной выше пойдет:). А для более качественной анимации что использовать? И можно всего персонажа вместе с его логикой и анимацией выгрузить в какой-нибудь файл, а потом просто добавить как объект в сцену и передавать ему параметры на которые он будет реагировать?
И задам еще глупый вопрос... Главный класс унаследован от спрайта, в нем переменной типа спрайт присваивается объект класса спрайт, сам этот класс находится в другом файле, но в этом же пакете. Вот примерный код второго/не главного класса: var cir:Sprite = new Sprite; cir.graphics.beginFill(0xFFCC00); cir.graphics.drawCircle(30, 30, 30); addChild(cir); Кто подскажет, почему кружочек не рисуется? Рисуется только когда addChild() напишу в главном классе. |
Тоже интересует данный вопрос. Видел как люди ставят метки на какой-то промежуток анимации. Например из 15 кадров, где 1 кадр - его обычная стойка, а 15 кадр, где он делает шаг. Этот промежуток в 15 кадров как-то обозначается и в конце привязан скрипт gotoAndPlay("goDown");. Но я до сих пор не понял как ставить флажки)
|
Цитата:
|
Цитата:
Есть такое понятие DisplayList — Список Отображения. Те объекты, которые добавлены в этот список, отображаются. Не все, какие были созданы программой, а только те из них, что были добавлены в Список. Поэтому какие то объекты могут существовать и даже что-то делать, но при этом не отображаться на экране, что, уж поверьте, очень удобно и, хотя и требует чуть больше памяти, зато улучшает быстродействие, так как объекты не нужно создавать каждый раз, когда хочется их показать. Например, кнопка может хранить все свои состояния уже отрисованными, и при взаимодействии с мышью только добавлять нужный стейт в Список, а ненужный удалять из него. Но не из памяти, а только из отображения. Этот Список — вложенный, или, если хотите, "дерево". На самом верху его основной контейнер — Stage, представляющий область отображения флэшплеера. В нем находится экземпляр вашего Документ-класса, главный контейнер Приложения/swf-файла. В котором Вы создаете уже разные экземпляры классов, контейнеры (мувиклип, спрайт) и не контейнеры (битмап, шейп, текстфилд) и можете добавлять их в отображение с помощью addChild() и addChildAt() (Документ-класс помещается в отображение автоматически, не нужно писать stage.addChild(main) ;). |
Цитата:
Правильно делается так: Создается класс, он наследуется от Sprite, в нём рисуем. Код AS3:
Код AS3:
Опоздал.) |
SuriTheAngel, почему у Вас графикс это свойство супер-класса, а addChild() — метод this? Вы его переопределили в главном классе что-ли? :)
|
Цитата:
|
Добавлять дисплей объекты можно где Вам хочется и где это вообще возможно, но нельзя добавлять их на stage! Нельзя делать - stage.addChild(...);
Если Вы добавили кружок в класе Другой, то он не попадёт в список отображения, так-как он сам в нем не находится. Автоматически только класс Main добавляется и если Вы хотите ещё что-то туда добавить, то нужно сначала получить ссылку на список отображения. Но если Вы добавить в Main класс экземпляр класса Другой .. addChild(Другой), то и объекты из этого Другой тоже попадут в список отображения. |
| Часовой пояс GMT +4, время: 02:57. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.