Итак, я понимаю, что для получения независимого от частоты кадров движения мне нужно умножить базовую скорость на (1000 / дельта).Он работает со значениями, которые представляют скорость, но когда я пытаюсь сделать это с переменной ускорения, например, гравитацией, это не сработает, даже не зависит от частоты кадров.
Существует ли другая формула для переменных ускорения, или я что-то забываю?
Пример:
var Multiplier:Number = (GetDeltaTime()) / (1000 / 30);
jumpVelocity = -21 * Multiplier //works
gravity = 1.5 * Multiplier //dosn't work
Это вызывается в начале каждого кадра
Редактировать : нашел решение, мне пришлось вычислить квадрат времени дельты.Не уверен на 100%, почему это работает, но работает.
Итак:
jumpVelocity = -21 * Multiplier //unchanged
gravity = 1.5 * Math.pow(Multiplier,2) //works now