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中设置变量作为默认值时容易遇到的错误
Apr 03 Python
Python下的subprocess模块的入门指引
Apr 16 Python
Python中pip安装非PyPI官网第三方库的方法
Jun 02 Python
Python实现爬虫从网络上下载文档的实例代码
Jun 13 Python
使用PyQt4 设置TextEdit背景的方法
Jun 14 Python
python动态视频下载器的实现方法
Sep 16 Python
使用python绘制温度变化雷达图
Oct 18 Python
python os.path.isfile()因参数问题判断错误的解决
Nov 29 Python
python中设置超时跳过,超时退出的方式
Dec 13 Python
详解Python直接赋值,深拷贝和浅拷贝
Jul 09 Python
使用python脚本自动生成K8S-YAML的方法示例
Jul 12 Python
python多次执行绘制条形图
Apr 20 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 中文处理函数集合
2008/08/27 PHP
CodeIgniter框架提示Disallowed Key Characters的解决办法
2014/04/21 PHP
php + nginx项目中的权限详解
2017/05/23 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
2017/11/17 PHP
php设计模式之职责链模式定义与用法经典示例
2019/09/19 PHP
php创建类并调用的实例方法
2019/09/25 PHP
JS小游戏之宇宙战机源码详解
2014/09/25 Javascript
jQuery实现判断滚动条到底部
2015/06/23 Javascript
JavaScript+CSS实现的可折叠二级菜单实例
2016/02/29 Javascript
JavaScript图像延迟加载库Echo.js
2016/04/05 Javascript
JavaScript编写点击查看大图的页面半透明遮罩层效果实例
2016/05/09 Javascript
Node.js Streams文件读写操作详解
2016/07/04 Javascript
js实现canvas保存图片为png格式并下载到本地的方法
2017/08/31 Javascript
Angular resolve基础用法详解
2018/10/03 Javascript
jQuery选择器之基本过滤选择器用法实例分析
2019/02/19 jQuery
angular4+百分比进度显示插件用法示例
2019/05/05 Javascript
在Angular项目使用socket.io实现通信的方法
2021/01/05 Javascript
天翼开放平台免费短信验证码接口使用实例
2013/12/18 Python
Python入门篇之文件
2014/10/20 Python
用map函数来完成Python并行任务的简单示例
2015/04/02 Python
Python命令行参数解析模块optparse使用实例
2015/04/13 Python
基于Python的文件类型和字符串详解
2017/12/21 Python
python 读取Linux服务器上的文件方法
2018/12/27 Python
CSS3实现swap交换动画
2016/01/19 HTML / CSS
天巡全球:Skyscanner Global
2017/06/20 全球购物
navabi英国:设计师大码女装
2019/06/25 全球购物
计算机应用专业应届毕业生中文求职信范文
2013/11/29 职场文书
办公室员工岗位工作职责
2014/03/10 职场文书
一年级评语大全
2014/04/23 职场文书
消防安全承诺书
2014/05/22 职场文书
热门专业求职信
2014/05/24 职场文书
计划生育证明格式范本
2014/09/12 职场文书
储备店长岗位职责
2015/04/14 职场文书
公司财务部岗位职责
2015/04/14 职场文书
求职信如何撰写?
2019/05/22 职场文书
一文读懂go中semaphore(信号量)源码
2021/04/03 Golang