Найти в Дзене

№51. Что есть delta, и как это использовать.

В цикле _process есть аргумент delta . Если вывести его содержимое на экран то получим ничто иное как межкадровое время.
То есть количество времени прошедшее между отрисовкой кадров. При 60 фпс дельта будет равна ~0.01666 (1/60)

Представим код, в котором в каждом кадре вы прибавляете к переменной 10.
А +=10

При частоте 60 кадров в секунду , через секунду переменная будет равна 600.
А при 30 вы получите 300... Надеюсь вы понимаете к чему это всё )

Для того чтобы избежать такое неравенство (а на слабых компьютерах часто может проседать фпс) надо использовать в расчетах умножение на дельту. По сути, грубо говоря мы как бы указываем в коде сколько надо прибавить или убавить за межкадровое время.
В нашем случае : А += 10*delta, и при 60 фпс и при 30 фпс, результат будет ~20.

Наглядный пример того, как отсутствие дельты в просчетах влияет на прыжок персонажа при 60 фпс :

-2

При 30 фпс :

-3

При низкой частоте кадров заметно как персонаж прыгает гораздо выше.

Ну и на последок напомню, что если вы работаете в _physics_process , то пересчитывать на дельту не надо.