|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Oct 2013
Сообщений: 6
|
Как правильно создать анимацию персонажа
Недавно начал осваивать AS3, для этих целей использую FlashDevelop.
И конечно хочется написать хоть простенькую но СВОЮ игру. Мне все было понятно до этого момента Суть вопроса в том, как правильно сделать анимацию персонажа. Например есть две картинки с ходьбой человека, на одной правая нога впереди левая рука сзади на другой наоборот. Как организовать чтобы они менялись? Какие средства для этого нужны? И так ли вообще должна происходить анимация или есть другой способ? |
|
|||||
Banned
|
|
|
|||||
Регистрация: Oct 2013
Сообщений: 6
|
Нуу, да для описанной выше пойдет. А для более качественной анимации что использовать? И можно всего персонажа вместе с его логикой и анимацией выгрузить в какой-нибудь файл, а потом просто добавить как объект в сцену и передавать ему параметры на которые он будет реагировать?
И задам еще глупый вопрос... Главный класс унаследован от спрайта, в нем переменной типа спрайт присваивается объект класса спрайт, сам этот класс находится в другом файле, но в этом же пакете. Вот примерный код второго/не главного класса: var cir:Sprite = new Sprite; cir.graphics.beginFill(0xFFCC00); cir.graphics.drawCircle(30, 30, 30); addChild(cir); Кто подскажет, почему кружочек не рисуется? Рисуется только когда addChild() напишу в главном классе. Последний раз редактировалось maxdemented; 10.02.2014 в 02:08. |
|
|||||
Регистрация: Jan 2012
Сообщений: 836
|
Тоже интересует данный вопрос. Видел как люди ставят метки на какой-то промежуток анимации. Например из 15 кадров, где 1 кадр - его обычная стойка, а 15 кадр, где он делает шаг. Этот промежуток в 15 кадров как-то обозначается и в конце привязан скрипт gotoAndPlay("goDown");. Но я до сих пор не понял как ставить флажки)
|
|
|||||
Цитата:
|
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
Есть такое понятие DisplayList — Список Отображения. Те объекты, которые добавлены в этот список, отображаются. Не все, какие были созданы программой, а только те из них, что были добавлены в Список. Поэтому какие то объекты могут существовать и даже что-то делать, но при этом не отображаться на экране, что, уж поверьте, очень удобно и, хотя и требует чуть больше памяти, зато улучшает быстродействие, так как объекты не нужно создавать каждый раз, когда хочется их показать. Например, кнопка может хранить все свои состояния уже отрисованными, и при взаимодействии с мышью только добавлять нужный стейт в Список, а ненужный удалять из него. Но не из памяти, а только из отображения. Этот Список — вложенный, или, если хотите, "дерево". На самом верху его основной контейнер — Stage, представляющий область отображения флэшплеера. В нем находится экземпляр вашего Документ-класса, главный контейнер Приложения/swf-файла. В котором Вы создаете уже разные экземпляры классов, контейнеры (мувиклип, спрайт) и не контейнеры (битмап, шейп, текстфилд) и можете добавлять их в отображение с помощью addChild() и addChildAt() (Документ-класс помещается в отображение автоматически, не нужно писать stage.addChild(main) .
__________________
Reality.getBounds(this); |
|
|||||
Цитата:
Правильно делается так: Создается класс, он наследуется от Sprite, в нём рисуем. package { public class MyCircle extends Sprite { public function MyCircle() { super.graphics.lineStyle(2, 0x000000); super.graphics.beginFill(0x0055CC); super.graphics.drawCircle(50, 50, 50); } } } Добавлено через 2 минуты Опоздал.) |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
SuriTheAngel, почему у Вас графикс это свойство супер-класса, а addChild() — метод this? Вы его переопределили в главном классе что-ли?
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Oct 2013
Сообщений: 6
|
Цитата:
|
|
|||||
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Добавлять дисплей объекты можно где Вам хочется и где это вообще возможно, но нельзя добавлять их на stage! Нельзя делать - stage.addChild(...);
Если Вы добавили кружок в класе Другой, то он не попадёт в список отображения, так-как он сам в нем не находится. Автоматически только класс Main добавляется и если Вы хотите ещё что-то туда добавить, то нужно сначала получить ссылку на список отображения. Но если Вы добавить в Main класс экземпляр класса Другой .. addChild(Другой), то и объекты из этого Другой тоже попадут в список отображения. |
Часовой пояс GMT +4, время: 02:33. |
|
« Предыдущая тема | Следующая тема » |
|
|