Pygame Time时间控制的具体使用详解


Posted in Python onNovember 17, 2021

pygame.time 时间控制模块,是 Pygame 中使用频率较高的模块,其主要功能是管理时间和游戏帧数率(即 FPS)。

时间在游戏开发中承担着非常重要的作用,比如释放某个技能所消耗的时间,或者播放动画、声音的持续时间,这些都需要时间来管理。time 模块另外一个重要作用是控制游戏帧数率(即 FPS),它是评价游戏画面是否流畅的关键指标。在一般情况下,计算机的 FPS 都能达到 60帧/s 的速度,这足够我们使用,如果当帧数小于 30 的时候,游戏画面就会变得卡顿。

注意,在 Pygame 中时间以毫秒为单位(1秒=1000毫秒),这样会使游戏的设计更为精细。

1) 游戏暂停

Pygame.time 模块提供了以下常用方法,如下表所示:

 

方法 说明
pygame.time.get_ticks()  以毫秒为单位获取时间
pygame.time.wait() 使程序暂停一段时间
pygame.time.set_timer() 创建一个定时器,即每隔一段时间,去执行一些动作
pygame.time.Clock() 创建一个时钟对象来帮我们确定游戏要以多大的帧数运行

下面看一组简单的示例:

import pygame
pygame.init()
screen = pygame.display.set_mode((500,500))
pygame.display.set_caption('c语言中文网')
# 获取以毫秒为单位的时间
t = pygame.time.get_ticks() #该时间指的从pygame初始化后开始计算,到调用该函数为止
t1 =pygame.time.wait(3000) #暂停游戏3000毫秒
print(t1)
#暂停t1时间后,加载图片
image_surface = pygame.image.load("C:/Users/Administrator/Desktop/c-net.png")
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            exit()
    screen.blit(image_surface,(0,0))
    pygame.display.update()

上述程序在暂停 3 秒后才会加载图片

2) 设置游戏FPS

若想设置游戏的帧数率(FPS)可以通过 Clock() 方法来实现,该对象提供了以下常用方法:

 

方法 说明
pygame.time.Clock.tick() 更新clock对象
pygame.time.Clock.get_time() 获取上一个tick中的时间
pygame.time.Clock.get_fps() 计算clock对象的帧率

下面看一组简单的应用示例:

import pygame
pygame.init()
screen = pygame.display.set_mode((500,300))
pygame.display.set_caption('c语言中文网')
# 获取以毫秒为单位的时间
t = pygame.time.get_ticks() #该时间指的从pygame初始化后开始计算,到调用该函数为止
t1 =pygame.time.delay(3000) #暂停游戏3000毫秒
print(t1)
#暂停t1时间后,加载图片
image_surface = pygame.image.load("C:/Users/Administrator/Desktop/c-net.png")
#创建时钟对象(控制游戏的FPS)
clock = pygame.time.Clock()
while True:
    #通过时钟对象,指定循环频率,每秒循环60次
    clock.tick(60)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            exit()
    screen.blit(image_surface,(0,0))
    pygame.display.update()

注意:FPS(游戏帧率)影响效果只有在动态图时才能显现出来,不过无论静态图还是动态图,它们的使用规则都是一样的。

到此这篇关于Pygame Time时间控制的具体使用详解的文章就介绍到这了,更多相关Pygame Time时间控制内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
win7 下搭建sublime的python开发环境的配置方法
Jun 18 Python
详解Django缓存处理中Vary头部的使用
Jul 24 Python
python flask 多对多表查询功能
Jun 25 Python
python实现拓扑排序的基本教程
Mar 11 Python
浅谈Python编程中3个常用的数据结构和算法
Apr 30 Python
在Pycharm中使用GitHub的方法步骤
Jun 13 Python
Python中注释(多行注释和单行注释)的用法实例
Aug 28 Python
python安装scipy的步骤解析
Sep 28 Python
Python基于jieba, wordcloud库生成中文词云
May 13 Python
Python实现加密接口测试方法步骤详解
Jun 05 Python
详解Django中 render() 函数的使用方法
Apr 22 Python
python opencv旋转图片的使用方法
Jun 04 Python
Pygame如何使用精灵和碰撞检测
Pygame Event事件模块的详细示例
Nov 17 #Python
利用python做数据拟合详情
Python Matplotlib库实现画局部图
Nov 17 #Python
python实现局部图像放大
Pygame Draw绘图函数的具体使用
Pygame Rect区域位置的使用(图文)
Nov 17 #Python
You might like
PHP 实用代码收集
2010/01/22 PHP
PHP中使用数组实现堆栈数据结构的代码
2012/02/05 PHP
探讨php define()函数及defined()函数使用详解
2013/06/09 PHP
彻底搞懂PHP 变量结构体
2017/10/11 PHP
PHP 对象接口简单实现方法示例
2020/04/13 PHP
基于jQuery实现表格数据的动态添加与统计的代码
2011/01/31 Javascript
分享一个自己写的table表格排序js插件(高效简洁)
2011/10/29 Javascript
javascript引擎长时间独占线程造成卡顿的解决方案
2014/12/03 Javascript
jQuery检查事件是否触发的方法
2015/06/26 Javascript
javascript带回调函数的异步脚本载入方法实例分析
2015/07/02 Javascript
常用js,css文件统一加载方法(推荐) 并在加载之后调用回调函数
2016/09/23 Javascript
select自定义小三角样式代码(实用总结)
2017/08/18 Javascript
angular2路由之routerLinkActive指令【推荐】
2018/05/30 Javascript
跨域解决之JSONP和CORS的详细介绍
2018/11/21 Javascript
Vue的data、computed、watch源码浅谈
2020/04/04 Javascript
jQuery冲突问题解决方法
2021/01/19 jQuery
[48:12]Secret vs Optic Supermajor 胜者组 BO3 第三场 6.4
2018/06/05 DOTA
Appium+python自动化之连接模拟器并启动淘宝APP(超详解)
2019/06/17 Python
python如何给字典的键对应的值为字典项的字典赋值
2019/07/05 Python
Pytorch 抽取vgg各层并进行定制化处理的方法
2019/08/20 Python
python3中替换python2中cmp函数的实现
2019/08/20 Python
Python倒排索引之查找包含某主题或单词的文件
2019/11/13 Python
python中p-value的实现方式
2019/12/16 Python
Python变量、数据类型、数据类型转换相关函数用法实例详解
2020/01/09 Python
css3制作彩色边线3d立体按钮的示例(css3按钮)
2014/05/06 HTML / CSS
HTML5 移动页面自适应手机屏幕四类方法总结
2017/08/17 HTML / CSS
美国婚礼装饰和活动用品批发供应商:Event Decor Direct
2018/10/12 全球购物
一位农村小子的自荐信
2014/04/07 职场文书
危爆物品安全大检查大整治工作方案
2014/05/03 职场文书
销售人员工作自我评价
2014/09/21 职场文书
婚前协议书标准版
2014/10/19 职场文书
审计局2014法制宣传日活动总结
2014/11/01 职场文书
大学生村官工作总结2015
2015/04/09 职场文书
幼儿园国培研修日志
2015/11/13 职场文书
nginx限制并发连接请求数的方法
2021/04/01 Servers
Python 如何解决稀疏矩阵运算
2021/05/26 Python