2016-05-30 68 views
1

在我的代碼中,我有一個計時器稱爲計時器。我通過做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> storydelay時,計時器應該停止,所以我可以回憶起回來一些其他時間

+0

嗯,我只需要一個命令,但確定只是幾秒鐘 – abc1234

+0

不知道你的意思嗎? – abc1234

+0

所以,只需在最後一條if語句之後設置'timer = 0'和'time_count = 0'。 –

回答

2

因爲timer.get_time()返回上一次調用timer.tick()的時候,你所要做的就是設置timer_count回0和call timer.tick()重置一切。

下面是一個例子:

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被重置

希望這有助於。

+0

你不需要第二個'時鐘'。 – skrx

+1

的確,我在辯論是否刪除它或保留它,因爲它更緊密地遵循了OP的代碼 –

+0

是的,該評論實際上更直接@ abc1234。 OP是否收到關於評論的答覆通知? – skrx