卜若的代码笔记-webgl系列-第十二章:帧率的计算

1 帧率是一个非常重要的东西

1.1 举个栗子

我们在做一款网络游戏,两个角色A和B需要同步,我们设定了相同的速度100,如果没有使用帧率去约束它一秒走的路层,那么我这个144hz的电脑就牛逼了,我1s走14400m,而你才是60hz帧率,就会产生...你1s才走了6000m??肯定有猫病啊!

要怎么解决呢,其实很简单

\sum_{frameNum}speed*frameRate

,就代表你我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;
}

经过验证,该函数没有问题! 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值