0
自分の目標は、画像をループして画面に表示することです。ユーザーがスペースを押すと、新しい画面に移動すると見なされます。何らかの理由で、ユーザーがスペースを押したときとゲーム1のループから逸脱したときのずれがあります。pygame.time.delay()を使用すると、Pygameの入力ラグが発生する
def game_loop1():
game1=True
winScreen=True
current=0
myfont = pygame.font.SysFont("monospace", 25)
label = myfont.render("Who is this person? (Press Space)", 1, (0,0,0))
while game1:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
if event.type == pygame.KEYDOWN:
if event.key==pygame.K_SPACE:
game1=False # doesn't break out of loop immediately here
gameDisplay.fill(white)
gameDisplay.blit(label,(0,500))
gameDisplay.blit(obama[current], (0,0))
current+=1
pygame.display.flip()
clock.tick(50)
pygame.time.delay(2500)
while winScreen:
gameDisplay.fill(white)
winLabel=myfont.render("The person was Obama! ", 1, (0,0,0))
gameDisplay.blit(winLabel,(0,500))
gameDisplay.blit(obama[len(obama)-1], (0,0))
pygame.display.flip()
pygame.time.delay(2500)
winScreen=False
これを修正するにはどうすればよいですか?
なぜあなたは 'pygame.time.delay(2500)'を使用していますか? – MooingRawr
pygameが停止するまで、新しいイベント(終了)を与えるのを止めています。ボタンを押すと、指定した時間後にループを変更して新しい画像に切り替える必要があります。 –
'game1 = False'を設定すると、なぜすぐにループから抜け出すのですか?現在の繰り返しが完了するまで(ループの最後に遅延呼び出しが追加されているため、再評価が明らかに遅れるため)、ループの条件は再評価されません。 – UnholySheep