Я делал свою собственную версию Flappy Bird и пытался добавить калькулятор fps.
Так что это очень просто, и даже в стеке потока уже есть ответ, объясняющий, как вычислять fps. Все было хорошо, пока я не переместил расчеты
в отдельной функции, чтобы мой цикл анимации был чистым.
Вот мой код:
var lastLoop = new Date();
function frameRate() {
var newLoop = new Date();
return Math.floor(1000 / (newLoop - lastLoop));
lastLoop = newLoop;
}
function animate() {
requestAnimationFrame(animate);
if (!hits) {
//game loop
frameRate.innerHTML = `Frame rate: ${frameRate()}`;
}
}
В результате fps начинается с 3 или 4, а затем уменьшается до 0. Что здесь не так? Заранее спасибо!