pygame.event.get() がスレッド内でイベントを返さない
問題:
PyGame を使用したパックマン スタイルのゲームでは、スレッド内で実行されるときに、受信_inputs 関数はキーボード イベントを取得しませんが、マウス イベントは登録されたままです。
コード スニペット:
def receiving_inputs(self): while True: events = pg.event.get() for event in events: if event.type == pg.KEYDOWN: # Handle keyboard input time.sleep(1/60) threading.Thread(target=self.receiving_inputs).start()
解決策:
PyGame イベント処理はメイン スレッドで発生する必要があります。
PyGame イベントのドキュメントによると:
イベント サブシステムはメイン スレッドから呼び出す必要があります。
イベントは他のスレッドから送信できますが、イベント キューはメイン スレッドで処理する必要があります。したがって、解決策は、event.get() 呼び出しをメインスレッドに移動することです。
以上がpygame.event.get() がスレッド内で実行されたときにイベントを返さないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。