Чтобы игра одинаково работала на компьютере с Max_fps=20 и на компьютере с Max_fps=100,нужно писать игру под компьютер с Max_fps=20 кадров в секунду.И соответственно все приращения координат спрайтов тоже брать для 20 кадров в секунду.Если при fps=100 для сдвига спрайта на 200 пикселей за секунду нужно приращение координаты 200/100=2,то при fps=20 это приращенние будет равно 200/20=10.Чем больше скорость приращения координаты,тем менее плавно перемещение спрайта.Для игр, в которых скорость перемещения спрайта 40-80 пикселей в секунду, достаточно fps=20,а вот если игра динамичная,как раз сейчас я пишу такую,то встает проблема выбора между аппаратной независимостью и качеством.
Как вы думаете- до какой степени нужно делать аппаратную независимость ?
Аппаратная независимость игр.
-
KolibriOS-перспективная ос!
Kolibri is best operation system in the world!
С расчетом на как можно более медленные компы. И вообще в играх для этой цели вводят панель настроек. Вот и ты можешь, ввести такую. Можно будет крутить качестово/скорость.
Но так надо старться увеличивать быстродействие кода, у нас и так аппаратное ускорение не используется.
Но так надо старться увеличивать быстродействие кода, у нас и так аппаратное ускорение не используется.
Я всегда стараюсь увеличить быстродействие кода(можете сами посмотреть).
А панель настроек- это хорошая идея!
А панель настроек- это хорошая идея!
Можно измерять время между кадрами и подстраиваться автоматически. Так делают практически все игры. А настраиваются там эффекты/детализация.
Вот,вот.
dx=int(нужное_смещение_за секунду_/FPS)
аналогично dy.
dx=int(нужное_смещение_за секунду_/FPS)
аналогично dy.
Так и делают, в зависимости от FPS, а иначе у тя получится как в X-COM первом, когда на мощных современных компах ета игрушка шла ДИКО быстро, и 5-секундное перематывание времени превращалось в 5-минутное (кто играл тот помнт )andrew_programmer wrote:Вот,вот.
dx=int(нужное_смещение_за секунду_/FPS)
аналогично dy.
Who is online
Users browsing this forum: No registered users and 5 guests