2017-02-08 6 views
0

私はボールを動かすためにw、a、s、dキーを使うこのゲームを作っています。私はあなたが「ゲームを始める」を押すと始まるタイマーを作ろうとしています。問題は、私がtime.sleepのような何かをすると、ボールの動きを妨げることです。私は、画面の右上隅にタイマーをレンダリングし、それを可能にしたいので、タイマーが停止するための条件文を作成します)1分にしたい。特定の時刻に起動するタイマを作成するにはどうしたらいいですか?

+0

あなたがスリープしているスレッドを所有していない限り、アプリでスレッドをスリープしないでください。 PyGameにはおそらく独自の遅延機構があります。 – Carcigenicate

+0

変数 'time = 0'を作成し、メインループで' dt + = clock.tick(fps) 'と' if start_game:time + = dt'を実行します。ここで、clockはpygame.time.Clock()とfpsあなたのフレームレートです。 'if time> = 60000:start_game = False'をチェックするif文を持っています(時間はミリ秒単位です)。 –

+0

ボーナス情報:これらの手法をモジュロと組み合わせて、ある一定の時間ごとに何かが起こるようにすることができます! – Douglas

答えて

1

これは私が最も簡単なものと思っており、お客様のニーズに最適です。あなたがボタンを押したときに

clock = pygame.time.Clock() 
fps = 60 # Or whatever frame-rate you want to cap the game at. 
time = 0 
game_started = False 

# This is the main loop. 
while True: 

    dt = clock.tick(fps) 

    if game_started: 
     time += dt 
    if time >= 60000: # 60 seconds. 
     game_started = False 

    # Then handle, events, update/draw objects etc. 

ちょうど game_started = True設定と time変数は、時間の増分を開始します。次に、好きなように画面に変数 timeを描画するだけです。 game_startedがTrueの場合、実行していないときに描画したくない場合はblitしてください。

関連する問題