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的一些用法分享
Oct 07 Python
Python简单检测文本类型的2种方法【基于文件头及cchardet库】
Sep 18 Python
Python 由字符串函数名得到对应的函数(实例讲解)
Aug 10 Python
详解Pytorch 使用Pytorch拟合多项式(多项式回归)
May 24 Python
解决python中无法自动补全代码的问题
Dec 04 Python
pyqt5 键盘监听按下enter 就登陆的实例
Jun 25 Python
python实现关闭第三方窗口的方法
Jun 28 Python
python实发邮件实例详解
Nov 11 Python
Python面向对象之多态原理与用法案例分析
Dec 30 Python
新版Pycharm中Matplotlib不会弹出独立的显示窗口的问题
Jun 02 Python
浅析Python的命名空间与作用域
Nov 25 Python
将Python代码打包成.exe可执行文件的完整步骤
May 12 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 echo 输出字符串函数详解
2010/05/13 PHP
zend Framework中的Layout(模块化得布局)详解
2013/06/28 PHP
解析php5配置使用pdo
2013/07/03 PHP
php学习笔记之面向对象
2014/11/08 PHP
在Linux系统的服务器上隐藏PHP版本号的方法
2015/06/06 PHP
php中get_magic_quotes_gpc()函数说明
2017/02/06 PHP
ThinkPHP5.1表单令牌Token失效问题的解决
2019/03/22 PHP
jQuery对象和DOM对象使用说明
2010/06/25 Javascript
jQuery代码优化 选择符篇
2011/11/01 Javascript
Textarea与懒惰渲染实现代码
2012/01/04 Javascript
JS简单的轮播的图片滚动实例
2013/06/17 Javascript
在jQuery中处理XML数据的大致方法
2015/08/14 Javascript
深入浅析JavaScript中prototype和proto的关系
2015/11/15 Javascript
实例讲解js验证表单项是否为空的方法
2016/01/09 Javascript
Bootstrap轮播图的使用和理解4
2016/12/14 Javascript
javascript事件的传播基础实例讲解(35)
2017/02/14 Javascript
swiper 解决动态加载数据滑动失效的问题
2018/02/26 Javascript
JavaScript实现alert弹框效果
2020/11/19 Javascript
python网络编程学习笔记(七):HTML和XHTML解析(HTMLParser、BeautifulSoup)
2014/06/09 Python
Python实现批量修改文件名实例
2015/07/08 Python
python多线程方式执行多个bat代码
2016/06/07 Python
python 编程之twisted详解及简单实例
2017/01/28 Python
Python检查ping终端的方法
2019/01/26 Python
如何基于Python批量下载音乐
2019/11/11 Python
CSS3感应鼠标的背景闪烁和图片缩放动画效果
2014/05/14 HTML / CSS
HTML5 canvas 瀑布流文字效果的示例代码
2018/01/31 HTML / CSS
英国在线珠宝店:The Jewel Hut
2017/03/20 全球购物
几个数据库方面的面试题
2016/07/01 面试题
毕业生求职的求职信
2013/12/05 职场文书
秋季运动会加油稿200字
2014/01/11 职场文书
2015年幼儿园元旦亲子活动方案
2014/12/09 职场文书
管理失职检讨书
2015/05/05 职场文书
教研活动主持词
2015/07/03 职场文书
详解Python类和对象内容
2021/06/22 Python
Redis高并发防止秒杀超卖实战源码解决方案
2021/11/01 Redis
win10蓝屏0xc0000001安全模式进不了怎么办?win10出现0xc0000001的解决方法
2022/08/05 数码科技