Запрос анимации кадра с точностью до миллисекунды
Я работаю над игровым циклом и не могу обойти конкретную проблему: группа объектов начинается с увеличенной задержкой и должна перемещаться на определенное расстояние.
Ожидаемое поведение состоит в том, что все объекты должны двигаться по четной диагональной линии, но они движутся в неравных группах.
Я понимаю, что проблема заключается в интервале обновления 16.667 мс, который "группирует" объекты в циклах обновления. Можно ли достичь точности менее 17 мс?
Я попытался разделить методы update и render и запустить обновление в цикле delta while - все безрезультатно.
Вот соответствующая часть из функции галочки:
function tick() {
if (this._stopped) return;
let now = performance.now();
if (now < this._lastTick + this._interval - 1) {
this._rafId = requestAnimationFrame(this.tick);
return;
}
this._rafId = requestAnimationFrame(this.tick);
let frameTime = (now - this._lastTick);
this._lastTick = now;
this._delta += frameTime;
let acc = 0;
while (this._delta >= this._interval) {
this._delta -= this._interval;
//this.update(this._interval);
acc++;
}
this.update(acc * this._interval);
//this.render(time);
this.count++;
}
Вот кодекс
Был бы очень признателен за любой вклад.