Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   анимация (http://www.flasher.ru/forum/showthread.php?t=176756)

anmelegov 16.03.2012 23:17

анимация
 
это даже и не анимация по сути, в общем есть у меня рагдолл который сидит на байке и мне надо его заставить прыгать... в общем у меня есть ключевые точки (как в анимации) и в этих точках я должен изменять параметры джоинтов которыми рагдол приделан к байку... подскажите пожалуйста как лучше организовать хендлер... слушать событие enter frame и считать итерации? или есть какой-то другой, более правильный, способ?

Deimos747 17.03.2012 00:36

Если я вас правильно понял, что вам нужно перехожить покадрово, то чтобы, даже при падении fps всё было более-менее плавно я делаю так:
Код AS3:

                private var _badTime: Number = 0.0;
                private var _timeLastUpdate: Number;
                private var _fps: int; //можете указывать разные для разных анимаций от fps игры это не зависит
 
                private function onEnterFrame(event: Event): void
                {
                        var timeNow: Number = new Date().getTime();
 
                        _badTime += timeNow - _timeLastUpdate;
                        _timeLastUpdate = timeNow;
 
                        while (_badTime > Number(1000 / _fps)) {
                                _badTime -= Number(1000 / _fps);
                                tick();
                        }
                }
 
                private function tick(): void
                {
                        //здесь выполняются переходы и прочие нужные операции
                }


anmelegov 17.03.2012 00:45

что это такое вообще? столько переменных.. ниче не понятно... я делаю всё намного проще:
Код AS3:

private var iterator:uint = 0;
 
private function handler(e:event) {
  switch(iterator++) {
      case 1:
          // do some actions
          break;
      case 5:
          // do some actions
          break;
      case 30:
          removeEventListener(event.EnterFrame, handler)
          iterator = 0;
  }
}

но я что-то не люблю конструкцию switch case =)

Добавлено через 1 минуту
какой кнопкой тут табуляцию делать в сообщении?

Добавлено через 17 минут
у меня не анимация, я управляю рагдоллом.. он приделан к байку 3-мя джоинтами которые имитируют мышцы (представьте амортизатор с пружиной) и я должен в ключевых точках задавать этим джоинтам длину и параметры "амортизатора" и "пружины" т.е., грубо говоря, скорость с которой он будет пытаться достичь заданной длины


Часовой пояс GMT +4, время: 21:09.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.