1 帧率是一个非常重要的东西
1.1 举个栗子
我们在做一款网络游戏,两个角色A和B需要同步,我们设定了相同的速度100,如果没有使用帧率去约束它一秒走的路层,那么我这个144hz的电脑就牛逼了,我1s走14400m,而你才是60hz帧率,就会产生...你1s才走了6000m??肯定有猫病啊!
要怎么解决呢,其实很简单
,就代表你我1s走的路程总是一样的
这样,我们就能够完成即使我们的电脑不同,我们1s的速度总是一样。
2 实现
var lastTime = null;
var frameTime = null;
var frameNum = 0;
var frameRate = 0;
var count = 0;
function FrameTimer(){
var currTime = new Date().getTime();
var delta =(currTime - lastTime);
frameTime = delta/1000;
//console.info(timeToCall+"<>"+currTime);
lastTime = currTime;
count+= delta;
frameNum++;
if(count>1000){
count = 0;
frameRate = frameNum;
console.info("帧率 = "+frameNum);
frameNum = 0;
}
requestAnimationFrame(FrameTimer);
}
function getFrameTime () {
return frameTime;
}
function getFrameRate() {
return frameRate;
}
经过验证,该函数没有问题!