2016-05-30 2 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

Ну, мне нужна только одна команда, но ок только 0 сек. – abc1234

+0

Не знаете, что вы подразумеваете под этим? – abc1234

+0

Так просто установите 'timer = 0' и' time_count = 0' после вашего последнего оператора if. –

ответ

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

Смежные вопросы