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;
}
經過驗證,該函數沒有問題!