Показать сообщение отдельно
Старый 07.04.2009, 21:59   #8
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Wrecking Crew & LodeRunner : Leeroy

Впрочем факт остаётся фактом: 25 FPS явно недостаточно

Ende, коэффициент всякого обновления, зависящего от производительности умножай на коэффициент*дельта-тайм.

дельта-тайм = время смены кадров, я пользуюсь таким (псевдокод на б3д):

(просьба не ср*ть, что можно было обойтись одной переменной dt, на всё есть основания )

Global dt
Начало_Цикла
cycletime = Millisecs()
Игра вместе с рендером, 2Д логикой и всё-всё-всё
dt = Millisecs() - cycletime
Конець_Цикла

Таким образом dt оказывается временем предыдущего цикла

Например: за каждый цикл сколько пикселей пролетит самолёт (напр, 100). Зависит от производительности? Да! Чем больше FPS тем больше раз произойдёт передвижение - тем дальше он сдвинется. Если передвигать не на константное значение, а на коэфф.*dt (например, если средний dt у нас 10 (грубо говоря при 100 FPS) то получим 10*dt) тогда чем больше времени прошло за рендер кадра (FPS уменьшилось) то ве увеличилось и пройденное расстояние тож -> изменение компенсировалось.

Очень важно отделить, где что зависит от dt, а где нет. В сложных формулах могут появиться квадраты и т.д. но в принципе пока я думаю у тебя такого нет. Разберись с этим, dt - крутая весчь!
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо ABTOMAT за это полезное сообщение:
Ende (07.04.2009), impersonalis (07.04.2009)