私はアマチュア プログラマーです。生物学実験に使用される一連の視覚刺激 (正方形のフラッシュ) の反応時間を測定する簡単なプログラムを作成しようとしています。これが私のコードです(グラフィカルインターフェイスを初めてコーディングすることに注意してください):
stimulus = pygame.Rect(100,250,100,100)
#draw on surface object
time.sleep(2) #wait for 2 seconds before it appears
screen.fill(BLACK)
pygame.draw.rect(screen,WHITE,stimulus)
pygame.display.update(stimulus)
#record time stimulus appeared
t0 = time.clock()
#clear screen ("flash" illusion)
time.sleep(0.5) #***PROBLEM***
screen.fill(BLACK)
pygame.display.update(stimulus)
while True:
for event in pygame.event.get():
if event.type == KEYDOWN:
t1 = time.clock()
print t1-t0
if event.type == QUIT:
pygame.quit()
sys.exit()
「問題」とマークされた行でブロックを含める前に、プログラムは正常に動作していました。印刷された反応時間は妥当に見えました。ただし、「フラッシュ」しただけのように、しばらくすると正方形が消えてほしいです。time.sleep(0.5) を含めた後、印刷された時刻が正しくなくなりました。どんなに速く押しても、常に 0.5xxxx 以上です。回避策はありますか?
PS 間に所定の (一定ではない) 一時停止を入れた一連のフラッシュを提示したいので、それを消す必要があります。
ありがとう。
編集
2 つのことを達成する必要があります。 1. 図形が画面上で 0.5 秒間点滅する必要があります。2. プログラムは、スペースバーが押されるたびにタイムスタンプを作成する必要があります (リストへの書き込みなど) (2 回のフラッシュの間にランダムに 2 回押された場合でも)。