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中使用items()方法返回字典元素对的教程
May 21 Python
Python 详解基本语法_函数_返回值
Jan 22 Python
学习Python3 Dlib19.7进行人脸面部识别
Jan 24 Python
python list删除元素时要注意的坑点分享
Apr 18 Python
Python实现微信自动好友验证,自动回复,发送群聊链接方法
Feb 21 Python
使用PyTorch将文件夹下的图片分为训练集和验证集实例
Jan 08 Python
Python实现栈的方法详解【基于数组和单链表两种方法】
Feb 22 Python
Django单元测试中Fixtures用法详解
Feb 25 Python
scrapy框架携带cookie访问淘宝购物车功能的实现代码
Jul 07 Python
详解Python高阶函数
Aug 15 Python
python批量修改文件名的示例
Sep 27 Python
用python实现一个简单的验证码
Dec 09 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绝对路径与相对路径之间关系的的分析
2010/03/03 PHP
php导入csv文件碰到乱码问题的解决方法
2014/02/10 PHP
PHP提示Warning:phpinfo() has been disabled函数禁用的解决方法
2014/12/17 PHP
php中$_POST与php://input的区别实例分析
2015/01/07 PHP
php验证身份证号码正确性的函数
2016/07/20 PHP
jQuery学习笔记之DOM对象和jQuery对象
2010/12/22 Javascript
面向对象的Javascript之一(初识Javascript)
2012/01/20 Javascript
JavaScript运行过程中的“预编译阶段”和“执行阶段”
2015/12/16 Javascript
谈谈我对JavaScript中typeof和instanceof的深入理解
2015/12/25 Javascript
基于JS实现导航条之调用网页助手小精灵的方法
2016/06/17 Javascript
JavaScript数组去重的6个方法
2017/01/21 Javascript
基于vue2.0实现的级联选择器
2017/06/09 Javascript
用node和express连接mysql实现登录注册的实现代码
2017/07/05 Javascript
AngularJs+Bootstrap实现漂亮的计算器
2017/08/10 Javascript
大转盘抽奖小程序版 转盘抽奖网页版
2020/04/16 Javascript
JavaScript数据结构与算法之二叉树实现查找最小值、最大值、给定值算法示例
2019/03/01 Javascript
vue里的data要用return返回的原因浅析
2019/05/28 Javascript
微信小程序实现折线图的示例代码
2019/06/07 Javascript
layui form表单提交后实现自动刷新
2019/10/25 Javascript
vue+element实现动态加载表单
2020/12/13 Vue.js
[03:03]DOTA2校园争霸赛 济南城市决赛欢乐发奖活动
2013/10/21 DOTA
python数据结构之图的实现方法
2015/07/08 Python
python字典键值对的添加和遍历方法
2016/09/11 Python
解决python线程卡死的问题
2019/02/18 Python
详解Python 解压缩文件
2019/04/09 Python
Python如何使用Gitlab API实现批量的合并分支
2019/11/27 Python
Python环境管理virtualenv&virtualenvwrapper的配置详解
2020/07/01 Python
Python中三维坐标空间绘制的实现
2020/09/22 Python
python pillow库的基础使用教程
2021/01/13 Python
详解HTML5通讯录获取指定多个人的信息
2016/12/20 HTML / CSS
只要五步 就可以用HTML5/CSS3快速制作便签贴特效(图)
2012/06/04 HTML / CSS
美国校服网上商店:French Toast
2019/10/08 全球购物
爱与责任演讲稿
2014/05/20 职场文书
老公保证书
2015/01/17 职场文书
工作表扬信范文
2015/01/17 职场文书
在JavaScript中如何使用宏详解
2021/05/06 Javascript