画面に表示されるすべての円を(カーソルをそれらの上に移動して)取得する必要があるPygameを使用して、単純なゲームを作成しています(毎秒さらに表示されます)。コードはかなり長いので、サンプルコードを作成しました。このコードは正常に動作し、Pygame ウィンドウはまったく応答しなくなります。
import pygame, random, sys
pygame.init()
window=pygame.display.set_mode((480,360))
end_program=False
while not end_program:
for event in pygame.event.get():
if event.type==pygame.QUIT or pygame.key.get_pressed()[pygame.K_ESCAPE]: #If the user either click the "x", or pressed the "esc" key
end_program=True
pass
pygame.quit()
sys.exit()
ただし、私のゲームでは、ユーザーにもう一度プレイする選択肢を与えるために、すべてend_program
を別のループでラップする必要があります。示されている例では、これはbreak_from_second_loop
次のとおりです。
import pygame, random, sys
pygame.init()
window=pygame.display.set_mode((480,360))
end_program=False
while not end_program:
for event in pygame.event.get():
if event.type==pygame.QUIT or pygame.key.get_pressed()[pygame.K_ESCAPE]: #If the user either click the "x", or pressed the "esc" key
end_program=True
break_from_second_loop=False
while not break_from_second_loop:
pass
pygame.quit()
sys.exit()
これを実行すると、ウィンドウが応答しなくなります。(コードをまったく変更せずに) 別のループでコードをラップするのと同じくらい簡単なことがなぜこれを行うのか誰でも知っていますか?