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中is与==判断的区别
Mar 28 Python
python爬虫入门教程--正则表达式完全指南(五)
May 25 Python
Python列表推导式与生成器表达式用法示例
Feb 08 Python
Python 实现取矩阵的部分列,保存为一个新的矩阵方法
Nov 14 Python
Python爬虫:url中带字典列表参数的编码转换方法
Aug 21 Python
python实现贪吃蛇双人大战
Apr 18 Python
Python使用Matlab命令过程解析
Jun 04 Python
使用Keras实现简单线性回归模型操作
Jun 12 Python
用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码
Jul 13 Python
Selenium执行完毕未关闭chromedriver/geckodriver进程的解决办法(java版+python版)
Dec 07 Python
jupyter 添加不同内核的操作
Feb 06 Python
python随机打印成绩排名表
Jun 23 Python
Pygame如何使用精灵和碰撞检测
Pygame Event事件模块的详细示例
Nov 17 #Python
利用python做数据拟合详情
Python Matplotlib库实现画局部图
Nov 17 #Python
python实现局部图像放大
Pygame Draw绘图函数的具体使用
Pygame Rect区域位置的使用(图文)
Nov 17 #Python
You might like
日本十大科幻动漫 宇宙骑士垫底,第一已成经典
2020/03/04 日漫
PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
2012/04/09 PHP
ThinkPHP分页类使用详解
2014/03/05 PHP
ThinkPHP 404页面的设置方法
2015/01/14 PHP
PHP+redis实现添加处理投票的方法
2015/11/14 PHP
PHP Swoole异步读取、写入文件操作示例
2019/10/24 PHP
php实现对短信验证码发送次数的限制实例讲解
2021/03/04 PHP
js实现的常用的左侧导航效果
2013/10/17 Javascript
JQuery中使用Ajax赋值给全局变量失败异常的解决方法
2014/08/18 Javascript
javascript将url中的参数加密解密代码
2014/11/17 Javascript
Jquery中find与each方法用法实例
2015/02/04 Javascript
jquery实现的Banner广告收缩效果代码
2015/09/02 Javascript
JS+CSS实现TreeMenu二级树形菜单完整实例
2015/09/18 Javascript
教你如何终止JQUERY的$.AJAX请求
2016/02/23 Javascript
javascript轮播图算法
2016/10/21 Javascript
JavaScript中的 attribute 和 jQuery中的 attr 方法浅析
2017/01/04 Javascript
javaScript 逻辑运算符使用技巧整理
2017/05/03 Javascript
JS中正则表达式要注意lastIndex属性
2017/08/08 Javascript
解决vue 更改计算属性后select选中值不更改的问题
2018/03/02 Javascript
Promise.all中对于reject的处理方法
2018/08/01 Javascript
Nuxt.js实现一个SSR的前端博客的示例代码
2019/09/06 Javascript
Python+matplotlib实现华丽的文本框演示代码
2018/01/22 Python
python实现本地图片转存并重命名的示例代码
2018/10/27 Python
numpy:找到指定元素的索引示例
2019/11/26 Python
python中turtle库的简单使用教程
2020/11/11 Python
python3 os进行嵌套操作的实例讲解
2020/11/19 Python
英国最大的高品质珠宝和手表专家:Goldsmiths
2017/03/11 全球购物
Booking.com美国:全球酒店预订网站
2017/04/18 全球购物
Simons官方网站:加拿大时尚零售商
2020/02/20 全球购物
C#笔试题和英文面试题
2013/02/07 面试题
2014年管理工作总结
2014/11/22 职场文书
单位考核聘任报告
2015/03/02 职场文书
2015年学校办公室主任工作总结
2015/07/20 职场文书
幼儿园园长新年寄语
2015/08/17 职场文书
单身狗福利?Python爬取某婚恋网征婚数据
2021/06/03 Python
Python之matplotlib绘制饼图
2022/04/13 Python