![]() |
Дельта тайминг
Слышал про это, но не раз в глаза код не видел. Кому не жалко поделитесь знаниями!):)
|
Ответ: Дельта тайминг
|
Ответ: Дельта тайминг
И что? Я тоже искал... КОда я там ни нашёл...ВСё равно спасибо
|
Ответ: Дельта тайминг
Код зависит в каждом конкретном случае непосредственно от кода игры, главное, что нужно понять - то, что необходимо домнажать ключевые действия (вроде перемещения и скорости проигрывания анимации) на некоторую скорость игры, которая должна быть обратно пропорциональна ФПС
|
Ответ: Дельта тайминг
Это я понимаю... Мне нужен пример. Я понимаю что скорость перемещения обьекта нужно будет умножать на Дельту. Каким образом ведётся просчёт... Если не затруднит помогите пожалуйста.
|
Ответ: Дельта тайминг
Код:
... |
Ответ: Дельта тайминг
|
Ответ: Дельта тайминг
Спасибо но у меня тут проблемма.
Вычисляю фпс так: Код:
Function Init_Count_FPS() Ставлю значение дельты перед инициализацие графики в глобалы.. Не работает.. В плане скорость меняется на -1.62354+008... Что делаю не так? |
Ответ: Дельта тайминг
Unodeya
сделай их не целыми |
Ответ: Дельта тайминг
сделал с плавающей точкой. при проверке значения скорости игрока скорость = infinity(бесконечно)
|
Ответ: Дельта тайминг
По-моему, следует сделать так:
deltatime = 60.0 / Init_Count_FPS() Потому что у тебя FPSCount является локальной переменной твоей функции |
Ответ: Дельта тайминг
FPSCount обозначена как глобальная переменная. А делить число на функцию, это что-то новое)) В любом случае не получилось.. Что-то не так.. Есть у кого нибудь маленький примерчик уже со счётчиком и каким нибудь обьектом? Помогите пожалуйста...
|
Ответ: Дельта тайминг
Цитата:
Неприходила мысть просто подумать логически? - Что такое фпс? Это число кадров в секунду. - Что нужно сделать чтобы его узнать? Сосчитать кадры сделаные за секунду! - Как сосчитать? Тупо fps=fps+1 в конце каждого кадра - Но считать нужно в течении секунду, как это сделать? Запоминает в переменную текущее время fps_time=Millisecs() Потом проверяем если Millisecs() - fps_time>=1000 то прошла секунда и в переменной fps у нас искомый фпс. Для следущего измерения нужно обнулить счётчик фпс предварительно сохранив старое значение last_fps=fps, fps=0, и снова запомнить текущее время: fps_time=Millisecs(). Ну а выводить на экран конешно последнее значение фпс из переменной last_fps. Без понимания логики работы алгоритмов, делать в программировании нечего. |
Ответ: Дельта тайминг
Цитата:
|
Ответ: Дельта тайминг
1. Все переменные твоей функции должны быть глобальными
2. deltatime должна быть типа float (#) 3. На deltatime нужно умножать любое действие которое в игре должно быть стабилизировано по фпс, т.е. вместо MoveEntity ent, 10,0,0 пишем MoveEntity ent, 10*deltatime,0,0 и т.д. Смысл умножения на делтатайм это "двигать вещи во столько раз быстрее во сколько раз наш фпс меньше проектного" З.Ы. а FPSCount должна быть глобальной! А если она глобальная то можно невозвращать её значение из функции. |
Часовой пояс GMT +4, время: 04:44. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot