如何停止计时器滴答

时间:2016-05-30 22:24:28

标签: python pygame

在我的代码中,我有一个名为timer的计时器。我已开始 它通过执行timer.tick()在游戏中的某个地方。我想知道是否有任何类型的命令可以阻止计时器再次记录时间并停止。因为如果我把它设置为零,它就会继续下去,我试过了。是否有像timer.stop()这样的命令。我尝试过很多东西,比如在网上查找,并将其设置为零等等。

谢谢 EDIT _______________________

这是主循环之前的变量

clock = pygame.time.Clock()
FPS = 60
timer = pygame.time.Clock()
storydelay = 5000
time_count = 0

主循环后

if story:

    timer.tick()
    time_count += timer.get_time()

    if time_count < storydelay:
        mainmenu = False
        screen.blit(black_image,zero_position)
    if time_count > storydelay:
        mainmenu = True

基本上我想做的是当time_count&gt;故事延迟,计时器应该停止,所以我可以在其他时间回想起它

1 个答案:

答案 0 :(得分:2)

由于timer.get_time()会将上次调用的时间返回到timer.tick(),所以您只需将timer_count设置为0,将call timer.tick()设置为重置所有内容。< / p>

以下是一个例子:

import pygame

clock = pygame.time.Clock()
FPS = 60
timer = pygame.time.Clock()
storydelay = 5000
time_count = 0

story = True
timer.tick()

while story:
    time_count += timer.tick()
    if time_count < storydelay:
        pass
    if time_count > storydelay:
        time_count = 0
        print "story done"
        story = False
    clock.tick(FPS)

main_menu = True
timer.tick()

while main_menu:
    time_count += timer.tick()
    if time_count > 3000:
        time_count = 0
        print "menu done"
        main_menu = False
    clock.tick(FPS)

print "done"

如您所见,在每个循环开始之前;调用timer.tick()并在每个循环关闭时time_count重置

希望这有帮助。