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中利用await关键字如何等待Future对象完成详解
Sep 07 Python
答题辅助python代码实现
Jan 16 Python
VSCode下好用的Python插件及配置
Apr 06 Python
celery4+django2定时任务的实现代码
Dec 23 Python
Python3.6+Django2.0以上 xadmin站点的配置和使用教程图解
Jun 04 Python
python 使用装饰器并记录log的示例代码
Jul 12 Python
在python中实现同行输入/接收多个数据的示例
Jul 20 Python
python Django 创建应用过程图示详解
Jul 29 Python
pytorch使用 to 进行类型转换方式
Jan 08 Python
python实现堆排序的实例讲解
Feb 21 Python
Python实现Keras搭建神经网络训练分类模型教程
Jun 12 Python
Python中非常使用的6种基本变量的操作与技巧
Mar 22 Python
Pygame如何使用精灵和碰撞检测
Pygame Event事件模块的详细示例
Nov 17 #Python
利用python做数据拟合详情
Python Matplotlib库实现画局部图
Nov 17 #Python
python实现局部图像放大
Pygame Draw绘图函数的具体使用
Pygame Rect区域位置的使用(图文)
Nov 17 #Python
You might like
IIS php环境配置PHP5 MySQL5 ZendOptimizer phpmyadmin安装与配置
2008/11/18 PHP
Zend的MVC机制使用分析(二)
2013/05/02 PHP
php数据访问之查询关键字
2016/05/09 PHP
php foreach如何跳出两层循环(详解)
2016/11/05 PHP
Nginx实现反向代理
2017/09/20 Servers
jQuery Ajax提交表单查询获得数据实例代码
2012/09/19 Javascript
jquery设置text的值示例(设置文本框 DIV 表单值)
2014/01/06 Javascript
全面解析Javascript无限添加QQ好友原理
2016/06/15 Javascript
jQuery插件echarts实现的多折线图效果示例【附demo源码下载】
2017/03/04 Javascript
vue中的非父子间的通讯问题简单的实例代码
2017/07/19 Javascript
基于vue2.0的活动倒计时组件countdown(附源码下载)
2018/10/09 Javascript
layui 点击重置按钮, select 并没有被重置的解决方法
2019/09/03 Javascript
JS常见错误(Error)及处理方案详解
2020/07/02 Javascript
[02:37]TI8勇士令状不朽珍藏II视频展示
2018/06/23 DOTA
Python selenium 三种等待方式解读
2016/09/15 Python
Python爬虫包BeautifulSoup简介与安装(一)
2018/06/17 Python
Python 多维List创建的问题小结
2019/01/18 Python
python批量下载抖音视频
2019/06/17 Python
python 字典 setdefault()和get()方法比较详解
2019/08/07 Python
Python写出新冠状病毒确诊人数地图的方法
2020/02/12 Python
Python3变量与基本数据类型用法实例分析
2020/02/14 Python
Python使用Selenium实现淘宝抢单的流程分析
2020/06/23 Python
解决TensorFlow调用Keras库函数存在的问题
2020/07/06 Python
vue.js刷新当前页面的实例讲解
2020/12/29 Python
C#里面可以避免一个类被其他类继承么?如何?
2013/09/26 面试题
解释下列WebService名词:WSDL、SOAP、UDDI
2012/06/22 面试题
卫校中专生个人自我评价
2013/09/19 职场文书
小学教师听课制度
2014/02/01 职场文书
四年级语文教学反思
2014/02/05 职场文书
个人自我剖析材料
2014/09/30 职场文书
基层党员群众路线教育实践活动个人对照检查材料思想汇报
2014/10/05 职场文书
2014年村计划生育工作总结
2014/11/14 职场文书
2015年机关党建工作总结
2015/05/22 职场文书
公司岗位说明书
2015/10/08 职场文书
2016社区平安家庭事迹材料
2016/02/26 职场文书
写作技巧:怎样写好一份优秀工作总结?
2019/08/14 职场文书