2016-06-26 62 views
0

は、私が何をしたいのかpygameでイベントの特定の時間間隔を待つ方法はありますか?ここ

import pygame 

screen = pygame.display.set_mode((800,600)) 

try: 
    while True: 
     e = pygame.event.wait() 
     if e.type == pygame.QUIT: 
      raise StopIteration 
     if e.type == pygame.MOUSEBUTTONDOWN: 

     if e.type == pygame.MOUSEBUTTONUP: 

     if e.type == pygame.MOUSEMOTION: 


except StopIteration: 
    pass 

pygame.quit() 

コード - 基本的なpygameのあるユーザーがマウスボタンを残し、MOUSEBUTTONUPイベントがトリガされたときに、私はどのMOUSEBUTTONDOWNイベントをチェックするためにしばらく待つようにしたいということです私はMOUSEBUTTONUPブロックのコマンドを実行する前に。

基本的に私はMOUSEBUTTONUPイベントがトリガーされてから2秒待つ必要があります。その期間中にMOUSEBUTTONDOWNイベントがなければ、私はMOUSEBUTTONUPでコマンドを実行します。しかし、それらの2秒間にMOUSEBUTTONDOWNイベントがある場合は、MOUSEBUTTONDOWNでコマンドを実行します。

この動作を実現する方法についてのご意見は歓迎します。

ありがとうございました

答えて

0

sleep()を使用できます。例えば

import time 
time.sleep(5) 

Link

+0

私はpygameのは、すべてのイベントを検出しないであろう時に一定の時間間隔を与えなければならないでしょう。 2秒の一時停止中にユーザーがマウスをクリックすると、プログラムがすぐに実行されるようにしたい。 –

0

あなたはtimeモジュールのtime.time()メソッドを使用しようとすることができます。前述のように、エポックに参照されている現在時刻を返します。heretime.time()

戻り浮動小数点数としてエポックからの秒単位の時間

。時間は常に浮動小数点数として返されますが、すべてのシステムが1秒よりも精度の高い時間を提供するわけではありません。この関数は通常、非減少値を返しますが、2つの呼び出しの間にシステムクロックが設定されていれば、以前の呼び出しより低い値を返すことができます。

は、ユーザーが指定した時間のために、次のコードは正常に動作する必要があります待ちます:睡眠中

import time 

max_time = int(raw_input('Enter the amount of seconds you want to run this: ')) 
start_time = time.time() # remember when we started 
while (time.time() - start_time) < max_time: 
    do_stuff() 
関連する問題