且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《HTML5 2D游戏编程核心技术》——第3章,第3.4节计算帧速率

更新时间:2022-09-23 10:13:50

本节书摘来自华章出版社《HTML5 2D游戏编程核心技术》一书中的第3章,第3.4节,作者[美] 戴维·吉尔里,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.4 计算帧速率
程序清单3.9列出了函数calculateFps()的具体代码,该函数在Snail Bait游戏中用于计算帧速率。
程序清单3.9 计算帧速率
帧速率表示为帧/秒,是一帧除以上一个动画帧和当前动画帧之间的时间间隔来计算的,时间以秒为单位。
对前面算法做一个小小的修改,就可以实现一个帧速率读数器,如程序清单3.10所示。
程序清单3.10 更新snailbaits-fps元素


《HTML5 2D游戏编程核心技术》——第3章,第3.4节计算帧速率

程序清单3.10描述了一个重要的动画技术:以一个特定的速率,而不是动画速率来执行一个任务。如果每个动画帧都更新一次帧速率读数器,读数将变得不可读,因为它会一直改变。因此前面的代码每秒更新一次读数。
拥有了游戏主循环和帧速率后,我们就可以开始编程实现滚动游戏背景。

记住游戏主循环

一定要记住Snail Bait游戏会连续地调用它的许多方法,且频率通常在60帧/秒左右。
如果你忘记了Snail Bait游戏会持续地调用方法这一事实,代码将很难理解。例如,程序清单3.9中lastAnimationFrameTime变量的声明和赋零值仅仅发生一次。但是Snail Bait游戏在每个动画帧都会调用calculateFps(),即Snail Bait游戏第一次调用calculateFps()时,lastAnimationFrameTime的值是零,但是在接下来的调用中,它就不是零了(因为lastAnimationFrameTime的赋值是在calculateFps()中完成的)。