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中使用M2Crypto模块实现AES加密的教程
Apr 08 Python
Django查找网站项目根目录和对正则表达式的支持
Jul 15 Python
基于Python log 的正确打开方式
Apr 28 Python
使用Anaconda3建立虚拟独立的python2.7环境方法
Jun 11 Python
python opencv实现切变换 不裁减图片
Jul 26 Python
对python中类的继承与方法重写介绍
Jan 20 Python
解决python测试opencv时imread导致的错误问题
Jan 26 Python
python中的decimal类型转换实例详解
Jun 26 Python
Python实现计算对象的内存大小示例
Jul 10 Python
关于多元线性回归分析——Python&SPSS
Feb 24 Python
Python编程快速上手——选择性拷贝操作案例分析
Feb 28 Python
python 深度学习中的4种激活函数
Sep 18 Python
Pygame如何使用精灵和碰撞检测
Pygame Event事件模块的详细示例
Nov 17 #Python
利用python做数据拟合详情
Python Matplotlib库实现画局部图
Nov 17 #Python
python实现局部图像放大
Pygame Draw绘图函数的具体使用
Pygame Rect区域位置的使用(图文)
Nov 17 #Python
You might like
第八节 访问方式 [8]
2006/10/09 PHP
无数据库的详细域名查询程序PHP版(5)
2006/10/09 PHP
php中Session的生成机制、回收机制和存储机制探究
2014/08/19 PHP
php使用simplexml_load_file加载XML文件并显示XML的方法
2015/03/19 PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
2016/09/11 PHP
Javascript中eval函数的使用方法与示例
2007/04/09 Javascript
Javascript笔记一 js以及json基础使用说明
2010/05/22 Javascript
关于eval 与new Function 到底该选哪个?
2013/04/17 Javascript
js jquery分别实现动态的文件上传操作按钮的添加和删除
2014/01/13 Javascript
javascript读写json示例
2014/04/11 Javascript
jquery的attr方法禁用表单元素禁用输入内容
2014/06/23 Javascript
jquery单行文字向上滚动效果的实现代码
2014/09/05 Javascript
jQuery使用zTree插件实现树形菜单和异步加载
2016/02/25 Javascript
深入浅析JSONAPI在PHP中的应用
2017/12/24 Javascript
微信小程序自定义轮播图
2018/11/04 Javascript
深入浅析nuxt.js基于ssh的vue通用框架
2019/05/21 Javascript
vue 实现v-for循环回来的数据动态绑定id
2019/11/07 Javascript
vue axios请求成功却进入catch的原因分析
2020/09/08 Javascript
Python线程同步的实现代码
2018/10/03 Python
Python利用pandas处理Excel数据的应用详解
2019/06/18 Python
python替换字符串中的子串图文步骤
2019/06/19 Python
Python获取命令实时输出-原样彩色输出并返回输出结果的示例
2019/07/11 Python
Django中文件上传和文件访问微项目的方法
2020/04/27 Python
python如何写try语句
2020/07/14 Python
socket.io 和canvas 实现的共享画板功能
2019/05/22 HTML / CSS
英国最大的婴儿监视器网上商店:Baby Monitors Direct
2018/04/24 全球购物
假日旅行社实习自我鉴定
2013/09/24 职场文书
运动会邀请函范文
2014/02/06 职场文书
创新比赛获奖感言
2014/02/13 职场文书
《最可爱的人》教学反思
2014/02/14 职场文书
诚信考试承诺书
2014/03/27 职场文书
小学教师师德师风演讲稿
2014/08/22 职场文书
行政秘书工作自我鉴定
2014/09/15 职场文书
师范生见习报告范文
2014/11/03 职场文书
现役军人家属慰问信
2015/03/24 职场文书
Python re.sub 反向引用的实现
2021/07/07 Python