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获取CPU、内存和硬盘等windowns系统信息的2个例子
Apr 15 Python
python版微信跳一跳游戏辅助
Jan 11 Python
python实现数独游戏 java简单实现数独游戏
Mar 30 Python
简单实现Python爬取网络图片
Apr 01 Python
浅谈Python中重载isinstance继承关系的问题
May 04 Python
python实时获取外部程序输出结果的方法
Jan 12 Python
python 实现查找文件并输出满足某一条件的数据项方法
Jun 12 Python
关于 Python opencv 使用中的 ValueError: too many values to unpack
Jun 28 Python
python使用minimax算法实现五子棋
Jul 29 Python
python进度条显示之tqmd模块
Aug 22 Python
Python filter()及reduce()函数使用方法解析
Sep 05 Python
python小技巧——将变量保存在本地及读取
Nov 13 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新手上路(十)
2006/10/09 PHP
PHP 模拟$_PUT实现代码
2010/03/15 PHP
CURL的学习和应用(附多线程实现)
2013/06/03 PHP
php管理nginx虚拟主机shell脚本实例
2014/11/19 PHP
使用vs code编辑调试php配置的方法
2019/01/29 PHP
浅谈PHP SHA1withRSA加密生成签名及验签
2019/03/18 PHP
20款非常优秀的 jQuery 工具提示插件 推荐
2012/07/15 Javascript
用js实现控件的隐藏及style.visibility的使用
2013/06/14 Javascript
Jquery设置attr的disabled属性控制某行显示或者隐藏
2014/09/25 Javascript
AngularJS内置指令
2015/02/04 Javascript
学习使用bootstrap3栅格系统
2016/04/12 Javascript
使用nodejs下载风景壁纸
2017/02/05 NodeJs
jquery横向纵向鼠标滚轮全屏切换
2017/02/27 Javascript
基于 Vue.js 之 iView UI 框架非工程化实践记录(推荐)
2017/11/21 Javascript
新版vue-cli模板下本地开发环境使用node服务器跨域的方法
2018/04/03 Javascript
详解基于vue-cli3快速发布一个fullpage组件
2019/03/08 Javascript
解决Vue打包上线之后部分CSS不生效的问题
2019/11/12 Javascript
vue中提示$index is not defined错误的解决方式
2020/09/02 Javascript
详解JavaScript 的执行机制
2020/09/18 Javascript
JavaScript实现商品评价五星好评
2020/11/30 Javascript
[32:36]完美世界DOTA2联赛PWL S3 LBZS vs CPG 第二场 12.12
2020/12/16 DOTA
Python装饰器使用实例:验证参数合法性
2015/06/24 Python
Python回调函数用法实例详解
2015/07/02 Python
python类的继承实例详解
2017/03/30 Python
Python2包含中文报错的解决方法
2018/07/09 Python
Python框架Flask的基本数据库操作方法分析
2018/07/13 Python
python使用matplotlib模块绘制多条折线图、散点图
2020/04/26 Python
python-Web-flask-视图内容和模板知识点西宁街
2019/08/23 Python
python scrapy重复执行实现代码详解
2019/12/28 Python
常用python爬虫库介绍与简要说明
2020/01/25 Python
python读取文件指定行内容实例讲解
2020/03/02 Python
Pytest框架之fixture的详细使用教程
2020/04/07 Python
J.Crew官网:美国知名休闲服装品牌
2017/05/19 全球购物
竞聘书怎么写,如何写?
2014/03/31 职场文书
股份合作协议书
2014/09/10 职场文书
MySQL批量更新不同表中的数据
2022/05/11 MySQL