ここに私の check_for_pause() 関数があります:
#Check if the user is trying to pause the game
def check_for_pause():
keys=pygame.key.get_pressed() #Get status of all keys
if keys[K_SPACE]: #The space bar is held down
global paused #Make global so it can be edited
if paused==True: #It was paused, so unpause it
paused=False
elif paused==False: #It was playing, so pause it
paused=True
#Don't let the main loop continue until the space bar has been released again, otherwise the variable will flicker between True and False where the loop runs so fast!
space_bar_pressed=keys[K_SPACE]
while space_bar_pressed: #Repeat this loop until space_bar_pressed is False
keys=pygame.key.get_pressed()
if not keys[K_SPACE]: #Space bar has been released so set space_bar_pressed to False
space_bar_pressed=False
ただし、一時停止しようとすると、プログラムが応答しなくなります。基本的に、変数「一時停止」をTrueまたはFalseにする必要があります。スペースバーを押すと、現在のものではないものに変わるはずです。もう 1 つの終わりのないループで check_for_pause() を使用しているため、スペース バーが離されたときにのみ関数の実行が停止するようにする必要があります。 True と False を交互に繰り返します。
これを実行するとプログラムが応答しなくなる理由はありますか? コードのそのビットを削除すると、プログラムが正常に実行されるため、スペースバーが解放されるまで待機するビットに関係していることはわかっています(ただし、明らかに一時停止機能は機能しません)。