2016-05-30 23 views
1

私のコードでは、timerというタイマーがあります。私は をゲームのどこかで、timer.tick()を実行して始めました。私はタイマーの録画時間をもう止めて止めることができるコマンドがあれば疑問に思っていました。なぜなら、ゼロに設定すれば、私は試したことが続きます。 timer.stop()のようなコマンドがありますか?私はtimer tickを停止する方法

これはメインループの前に、メインループの後

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

変数であるあなたに EDIT_______________________

ありがとう...など、そのような本のオンライン探しなど多くのことを試みたが、それをゼロに設定しています

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、タイマーを停止する必要がありますので、私は思い出すことができたときですそのバックtimer.get_time()戻りtimer.tick()への最後の呼び出しからの時間は、あなたがしなければならないすべては、すべてをリセットするために0とcall timer.tick()に戻しtimer_countに設定されているため、いくつかの他の時間

+0

私はちょうど1つのコマンドが必要ですが、ちょっと待ってください。 – abc1234

+0

あなたはそれが何を意味するか分かりませんか? – abc1234

+0

最後のif文の後に 'timer = 0'と' time_count = 0'を設定するだけです。 –

答えて

2

。ここで

は一例です:

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

2番目の 'Clock'は必要ありません。 – skrx

+1

本当に、私はそれを削除するかどうか議論していた、それはOPのコードに少し近づいているからだ。 –

+0

ええ、そのコメントは実際には@ abc1234に向けられていた。 OPは解答に対するコメントを通知されますか? – skrx

関連する問題