《Python和Pygame游戏开发指南》——2.18 帧速率和pygame.time.Clock对象
本节书摘来自异步社区《Python和Pygame游戏开发指南》一书中的第2章,第2.18节,作者[美]Al Sweigart(斯维加特), 李强 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。
2.18 帧速率和pygame.time.Clock对象帧速率(frame rate)或刷新速率(refresh rate)是程序每秒钟绘制的图像的数目,用FPS或帧/秒来度量(在计算机显示器上,FPS常见的名称是赫兹。很多显示器的帧速率是60Hz,或者说每秒60帧)。视频游戏中,较低的帧速率会使得游戏看上去抖动或卡顿。如果游戏包含的代码太多了,以至于无法运行来频繁地绘制到屏幕上,那么,FPS会下降。但是,本书中的游戏都足够简单,甚至在较旧的计算机上也不会有问题。
pygame.time.Clock对象可以帮助我们确保程序以某一个最大的FPS运行。Clock对象将会在游戏循环的每一次迭代上都设置一个小小的暂停,从而确保游戏程序不会运行得太快。如果没有这些暂停,游戏程序可能会按照计算机所能够运行的速度去运行。这对玩家来说往往太快了,并且计算机越快,它们运行游戏也就越快。在游戏循环中调用一个Clock对象的tick()方法,可以确保不管计算机有多快,游戏都按照相同的速度运行。catanimation.py程序的第7行创建了Clock对象。
每次游戏循环的最后,在调用了pygame.display.update()之后,应该调用Clock对象的tick()方法。根据前一次调用tick()(这在游戏循环的前一次迭代的末尾进行)之后经过了多长时间,来计算需要暂停多长时间(第一次调用tick()方法的时候,根本没有暂停)。在动画程序中,调用tick()是在第47行进行的,作为游戏循环中的最后一条指令。
你需要知道的是在游戏循环的每一次迭代中,应该在循环的末尾调用tick()方法一次。通常,这刚好在调用了pygame.display.update()之后进行。
尝试修改FPS常量变量,以不同的帧速率来运行相同的游戏。将其设置为一个较低的值,就会使得程序运行得较慢。将其设置为一个较高的值,就会让程序运行得较快。
异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
相关文章
- 【Python成长之路】python 基础篇 -- 装饰器【华为云分享】
- python: 安装DeOldify库:黑白图片上色(Python 3.7.15)
- python操作gmail
- Atitit python3.0 3.3 3.5 3.6 新特性 Python2.7新特性1Python 3_x 新特性1python3.4新特性1python3.5新特性1值得关注的新特性1Python3.6新特性2 Python2.7新特性Python 2.7的新特性 - 牛皮糖NewPtone - 博客园.html Python 3_x 新特性及10大变化_python_脚本之家.htm
- Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Button的command/Label/PhotoImage/封装为类)
- Python编程语言学习:python中与数字相关的函数(取整等)、案例应用之详细攻略
- Python可视化数据分析09、MySQL读写
- 网瘾少年自制Python开源扫雷游戏,转手月入18K,附赠所有源文件
- Python爬虫实战之爬取糗事百科段子
- 讲透了!Python 垃圾回收机制与原理解析
- 【Python 八股文】- 常见的排序算法
- 【华为OD机试Python实现】HJ67 24点游戏算法(中等)
- Python游戏开发入门:pygame屏幕绘制机制-2
- Python游戏开发入门:pygame事件处理机制-3
- Python游戏开发入门:pygame色彩与绘图机制-4
- Python解释器的探讨:第二部分代码对象
- Python: 渐进猜数字游戏 <7> 数字比较 与 猜数字游戏V0.1版
- Python: 渐进猜数字游戏 <2> 我的游戏
- Python代码集----获取最近100期双色球的开奖结果并将结果写入csv文件
- python小游戏——走出迷宫代码开源
- TicTacToe: 基于时序差分TD(0)算法的agent实现以及完整python实现框架