Показать сообщение отдельно
Старый 14.03.2014, 22:19
KumoKairo вне форума Посмотреть профиль Отправить личное сообщение для KumoKairo Найти все сообщения от KumoKairo
  № 3  
Ответить с цитированием
KumoKairo
 
Аватар для KumoKairo

Регистрация: Jan 2013
Сообщений: 550
Записей в блоге: 1
Цитата:
мб без битмапа?
WTF?! O_o

Для привязки ко времени обычно запоминают время предыдущего кадра, находят разницу (в миллисекундах) с текущим кадром и по простой формуле механики находят новое положение.
Код AS3:
import flash.utils.getTimer;
И потом использовать эту функцию как
Код AS3:
var previousFrameTime:int; // Где-нибудь инициализируется
// новый кадр
{
    var passedTime:int = getTimer() - previousFrameTime;
    // Делаем с этим временем что нужно
    ...
    // Конец кадра
    previousFrameTime = getTimer();
}
Функция возвращает количество миллисекунд, прошедшее с начала ролика. Соответственно если в конце текущего кадра запоминать это значение в переменной, а в начале следующего вычитать эту переменную из getTimer(), получим прошедшее с последнего кадра время.
Разделить на 1000, умножить на скорость - получим перемещение в пикселях на текущий кадр. Прибавить перемещение нужному объекту, сохранить текущее значение getTimer() в переменную и ждать следующий кадр. И так до посинения.


Последний раз редактировалось KumoKairo; 16.03.2014 в 00:05.