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 相关文章推荐
python实现获取序列中最小的几个元素
Sep 25 Python
Python下的twisted框架入门指引
Apr 15 Python
python实现将文本转换成语音的方法
May 28 Python
numpy判断数值类型、过滤出数值型数据的方法
Jun 09 Python
Python使用pandas处理CSV文件的实例讲解
Jun 22 Python
python微信撤回监测代码
Apr 29 Python
python使用原始套接字发送二层包(链路层帧)的方法
Jul 22 Python
python selenium爬取斗鱼所有直播房间信息过程详解
Aug 09 Python
用 Python 制作地球仪的方法
Apr 24 Python
利用Python实现字幕挂载(把字幕文件与视频合并)思路详解
Oct 21 Python
python wsgiref源码解析
Feb 06 Python
python和anaconda的区别
May 06 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基础知识:类与对象(5) static
2006/12/13 PHP
纯真IP数据库的应用 IP地址转化成十进制
2009/06/14 PHP
Apache实现Web Server负载均衡详解(不考虑Session版)
2013/07/05 PHP
设置php页面编码的两种方法示例介绍
2014/03/03 PHP
PHP的伪随机数与真随机数详解
2015/05/27 PHP
关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
2015/12/21 PHP
javascript 面向对象全新理练之继承与多态
2009/12/03 Javascript
input的focus方法使用
2010/03/13 Javascript
JavaScript下通过的XMLHttpRequest发送请求的代码
2011/06/28 Javascript
JS获取后台Cookies值的小例子
2013/03/04 Javascript
jquery attr方法获取input的checked属性问题
2014/05/26 Javascript
两种方法实现在HTML页面加载完毕后运行某个js
2014/06/16 Javascript
EasyUI 中combotree 默认不能选择父节点的实现方法
2016/11/07 Javascript
jQuery Easyui datagrid连续发送两次请求问题
2016/12/13 Javascript
JavaScript 程序错误Cannot use 'in' operator to search的解决方法
2017/07/10 Javascript
jsonp跨域获取数据的基础教程
2018/07/01 Javascript
浅谈开发eslint规则
2018/10/01 Javascript
vue动态配置模板 'component is'代码
2019/07/04 Javascript
Python字符串详细介绍
2015/05/09 Python
以一个投票程序的实例来讲解Python的Django框架使用
2016/02/18 Python
基于Python实现对PDF文件的OCR识别
2016/08/05 Python
python实现人脸识别代码
2017/11/08 Python
详解Python中的分组函数groupby和itertools)
2018/07/11 Python
python实现在线翻译
2020/06/18 Python
CSS3中使用RGBA设置透明度的示例
2015/08/04 HTML / CSS
phpquery中文手册
2021/03/18 PHP
飞利浦比利时官方网站:Philips比利时
2016/08/24 全球购物
美国受欢迎的眼影品牌:BH Cosmetics
2016/10/25 全球购物
LUISAVIAROMA德国官网:时尚奢侈品牌购物网站
2020/11/12 全球购物
J2SDK1.5与J2SDK5.0有什么区别
2012/09/19 面试题
创建服务型党组织实施方案
2014/02/25 职场文书
2015年乡镇扶贫工作总结
2015/04/08 职场文书
生鲜超市—未来中国最具有潜力零售业态
2019/08/02 职场文书
继承Win10缺点!教你关闭Win11烦人的网络搜索
2021/11/23 数码科技
css3 文字断裂效果
2022/04/22 HTML / CSS
html中两种获取标签内的值的方法
2022/06/16 jQuery