![]() |
|
||||||||||
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
А, собственно, зачем привязывать скорость перемещения персов к непостоянной величине типа fps?
|
|
|||||
|
Регистрация: Dec 2008
Сообщений: 14
|
Чтобы они равномерно двигались. Если у нас случится провал в производительности (например куча эффектов посыпалось на экран), то фпс упадёт. Допустим в игре (автосимулятор) 60 фпс - норма. Провалились на пару секунд до 40 фпс. Если не скорректировать скорость под 40 фпс, то эти 2 секунды будем двигаться медленнее в 1.5 раза и это будет хорошо заметно глазом, а если скорректируем, то проедем столько же и падение до 40фпс будет почти незаметно.
|
|
|||||
|
Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
|
Если при отрисовке некоторые кадры будут пропущены, это не значит что расчеты позиции объекта изменятся.
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
DreamRunner, я о том, что к fps привязывать такие вещи, как скорость и прочие физические параметры в принципе неверный подход.
Поэтому никто ничего не корректирует, всё имеет прямую связь: объект A в момент времени t должен находится в точке C и fps тут никакого участия не принимает. |
|
|||||
|
Регистрация: Dec 2008
Сообщений: 14
|
если позиция меняется в функции обновления объектов как
x+=speed , то скорость объекта на экране зависит от фпс. при 30 фпс объект переместится на 30*speed, а при 60 - на 60*speed. Цитата:
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Так нормальные игры не делают.
Я уже озвучил в предыдущем посте. |
|
|||||
|
[+1 14.08.08]
[+1 20.08.08] |
если есть проседания, то для получения равномерной скорости
dt = curTime - prevTime x+=speed*dt При этом, если в потеряном кадре нужна была проверка на столкновение, то нужно еще и провести ее на каждом атоме, а не только после приращения. Фпс больше 60-80 не ставить - флеш перестанет успевать делать расчеты, будите на графике видеть лесенку - в секунду то 20 кадров, то 60.
__________________
~ Never trouble trouble till trouble troubles you! |
![]() |
![]() |
Часовой пояс GMT +4, время: 19:43. |
|
|
« Предыдущая тема | Следующая тема » |
|
|