Как мне работать с «дельтой» в Slick2D / LWJGL или игровом программировании в целом? - PullRequest
1 голос
/ 27 ноября 2011

Все, что я знаю, это то, что дельта как-то связана с адаптацией к разной частоте кадров, но я не совсем точно знаю, что она обозначает и как ее использовать в математике, которая рассчитывает скорости, а что нет. Где объявлена ​​дельта? инициализируется? Как это используется? Как устанавливаются его значения (мин., Макс.)?

Ответы [ 2 ]

5 голосов
/ 28 ноября 2011

Это количество миллисекунд между кадрами. Вместо того, чтобы пытаться строить свою игру за фиксированное количество миллисекунд между кадрами, вы хотите изменить свою игру, чтобы перемещать / обновлять / корректировать каждый элемент / спрайт / ИИ в зависимости от того, сколько времени прошло с момента последнего использования метода обновления. вокруг. Это относится практически ко всем игровым движкам и позволяет избежать необходимости изменять игровую логику в зависимости от мощности оборудования, на котором вы работаете.

Slick также имеет механизмы для установки минимального времени обновления, поэтому у вас есть способ гарантировать, что дельта не будет меньше определенной суммы. Это позволяет вашей игре в основном говорить: «Не обновляйте чаще, чем каждые« х »миллисекунды», потому что, если вы работаете на мощном оборудовании и имеете очень плотный игровой цикл, теоретически возможно получить дельты за миллисекунды который начинает вызывать странные побочные эффекты, такие как медленное движение или обнаружение столкновений, которые, кажется, не работают так, как вы ожидаете.

Установка минимального времени обновления также позволяет свести к минимуму перерасчет без необходимости, когда прошло только очень и очень небольшое количество времени.

1 голос
/ 27 ноября 2011

Прочтите учебник по времени LWJGL, найденный здесь .Это не совсем гладко, но объяснит, что такое значение дельты и как его использовать.

...