3.4 计算帧速率
程序清单3.9列出了函数calculateFps()的具体代码,该函数在Snail Bait游戏中用于计算帧速率。
程序清单3.9 计算帧速率
帧速率表示为帧/秒,是一帧除以上一个动画帧和当前动画帧之间的时间间隔来计算的,时间以秒为单位。
对前面算法做一个小小的修改,就可以实现一个帧速率读数器,如程序清单3.10所示。
程序清单3.10 更新snailbaits-fps元素
程序清单3.10描述了一个重要的动画技术:以一个特定的速率,而不是动画速率来执行一个任务。如果每个动画帧都更新一次帧速率读数器,读数将变得不可读,因为它会一直改变。因此前面的代码每秒更新一次读数。
拥有了游戏主循环和帧速率后,我们就可以开始编程实现滚动游戏背景。
记住游戏主循环
一定要记住Snail Bait游戏会连续地调用它的许多方法,且频率通常在60帧/秒左右。
如果你忘记了Snail Bait游戏会持续地调用方法这一事实,代码将很难理解。例如,程序清单3.9中lastAnimationFrameTime变量的声明和赋零值仅仅发生一次。但是Snail Bait游戏在每个动画帧都会调用calculateFps(),即Snail Bait游戏第一次调用calculateFps()时,lastAnimationFrameTime的值是零,但是在接下来的调用中,它就不是零了(因为lastAnimationFrameTime的赋值是在calculateFps()中完成的)。
时间: 2024-10-31 01:09:34