Pygame Time时间控制详解

 
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 秒��会加载图片,�行结果如下:

pygame程�
图1:程��行结果

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(游�帧率)影�效果�有在动�图时�能显现出�,�过无论��图还是动�图,它们的使用规则都是一样的。

关注公众�「站长严长生�,在手机上阅读所有教程,�时�地都能学习。本公众�由C语言中文网站长亲自��,长期更新,��原创。

公众�二维�
微信扫�关注公众�

 

加入微信交�群,一起学习�枯燥。内�一款�索神器,�费下载全网书�和视频。