1 设置游戏帧率
1.1 帧与帧率
“帧”指的是动态画面中的单张静态图像,通过快速切换静态画面(帧)形成动态视觉效果。“帧率”指的是特定时间段(一般为1秒钟)内生成的静止画面,帧率越高,画面越流畅。但是帧率越高,所占用计算机的内存或CPU就越高。
1.2 没有设置帧率的游戏
《从零开始学Python游戏编程26-监听键盘2》中的移动矩形的游戏中,没有设置帧率,此时的游戏会尽可能多地产生帧,而这些过多的帧无法在显示器中显示出来,浪费了电脑资源。移动矩形的游戏运行后,通过电脑的“设备管理器”可以看到,该游戏占用了大量的内存、CPU以及电源资源,如图1所示。
图1 移动矩形的游戏占用电脑的大量资源
相关链接1 通过“Ctrl”+“Alt”+“Del”打开操作系统的“设备管理器”。
1.3 设置游戏帧率
在移动矩形的游戏中,大概每5毫秒运行一次while循环,那么1秒钟大概会产生1000÷5=200帧。而对于游戏来说,帧率在30-60之间,就不会产生卡顿。设置游戏帧率的步骤是首先创建时钟类的实例,之后通过该实例设置帧率。
1.3.1 创建时钟类的实例
通过如图2所示的代码创建时钟类的实例。
图2 创建时钟类实例的代码
其中,Clock类在pygame.time模块中定义,变量clock即为Clock时钟类的实例。
注意1 Clock时钟类的首字母C是大写,变量clock的首字母c是小写。
1.3.2 通过时钟类的实例设置帧率
在while循环的最后,通过clock设置帧率的代码如图3所示。
图3 通过时钟类的实例设置帧率的代码
以上代码的作用是将游戏的帧率设置为60。依然假设大概每5毫秒运行一次while循环,那么产生60帧所需的时间为60×5=300毫秒,则在1秒钟之内,该游戏释放了1000-300=700毫秒的CPU占用时间。运行设置帧率后的游戏,通过“设备管理器”可以看到,内存、CPU以及电源资源的占用率大大减少了。
图4 游戏资源占用率大大减少