我正在制作自己的Flappy Bird版本,并试图添加fps计算器。
所以这很简单,甚至stackoverflow已经有了解释如何计算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。这是怎么回事?预先感谢!