![]() |
ускорение времени
Здравствуйте. Подскажите, плиз, как сделать ускорение времени!
Может есть функция изменения фпс? |
на фпс (и событие enterFrame) завязываться не стоит.
у разных пользователей будут разные результаты выставьте фпс побольше (хоть 100), а движения организовывайте по времени. для ускорения-замедления - параметр, который учитывайте при расчете движения |
Чтобы преодолеть пространственно-временной барьер? :D
Используйте таймер, если надо. А вообще, для чего это вам? |
Stage#frameRate
|
влетит автор с фреймрейтом
все равно по времени корректироваться придется |
мне нужно сделать ускорение в игре...
там ведь не только программное перемещение, но и анимации. и всё это нужно ускорить! Добавлено через 12 минут Stage#frameRate для моей цели подошёл.... но возник интересный непонятный момент! в игре есть скроллинг по карте, и при ускорении frameRate в целое количество раз всё движется как по маслу. но стоит изменить коэффициент ускорения на дробное число, и скрол начинает дёргаться! почему? |
frameRate для этого менять очень плохо,
лучше сделать один обработчик, EnterFrame илм таймера который будет вызывать функцию у каждого объекта. тогда не будет проблем с регулировкой скорости (например если вам надо ускориться в полтора раза то тогда обработчик первый раз вызывает функции один раз второй раз вызывает два раза - выведите формула для расчета). не стоит делать frameRate больше 60. а тем более дробный. |
если вы пишете в кадре, то код таймера будет выглядеть так:
Код AS3:
|
Я давно талдычу, что делать надо вот так http://www.kongregate.com/forums/4/topics/1773 как во 2-м посте.
Ну т.е. должно быть некое "время между фреймами", от которого всё пляшет (эти ваши твины так сделаны). Только так надо делать изначально, потому как потом и анимации хрен пойми уже как сделаны и таймеров понатыкано. |
medvedya2, ваша мысль ясна и, конечно, принята в базу знаний;)
но как не меняя frameRate ускорить анимацию? -De-, английский для меня пока тёмный лес..... Можно в кратце, как использовать то самое "время между фреймами"? |
Ну смысл в том, что нет никакого фреймрейта в принципе, а есть только время с прошлого кадра. Собсно всё. Как примерно организовать - там есть код. play() у мувиков не использовать, когда надо показать след. кадр использовать gotoAndStop(). Таймеры не использовать или написать другие, которые тоже апдейтятся каждый фрейм с указанием, сколько времени прошло.
Тогда тупо искусственно увеличивая прошедшее с прошлого кадра время получаем ускорение какое надо. |
Цитата:
А вот по поводу фреймрейта - та же альтренатива рекомендует ставить сотню (и в примерах у них сотня стоит). Хотя реально, когда начинается обсчет 3D, больше 60-ти я ни разу не видел. |
скажу проще:
если у вас есть проект с кучами ручной и программной анимации, то переработать всё это можно будет: 1) вручную, пробегаемся по коду и мувикам, вставляем глобальный код/класс для смены скорости, который "двигает" анимационные ключи в нужную сторону (тяжкий вариант, зависит от сложности проекта) 2) собрать проект заново с учетом, этих ваших clock-movers (самый расово верный метод) 3) тот метод что уже предлагали, сменить кол-во кадров в секунду для всей флеши, раз там возникают глюки, значит не совсем подходящий, хотя и самый (значительно!!!) простой из всех вариантов |
Цитата:
|
| Часовой пояс GMT +4, время: 19:12. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.