ホームページ >バックエンド開発 >Python チュートリアル >pygame.event.get() が別のスレッドでイベントを返さないのはなぜですか?

pygame.event.get() が別のスレッドでイベントを返さないのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-17 19:26:02406ブラウズ

Why Doesn't pygame.event.get() Return Events in a Separate Thread?

pygame.event.get() がスレッドでイベントを返さない

ユーザー入力処理を最適化するために、ユーザーがゲームのメインループとは別に入力イベントを処理するスレッド。ただし、スレッド内で pygame.event.get() を使用するとイベントが返されないため、問題が発生します。

その説明は、pygame で使用されるスレッド モデルにあります。ドキュメントによると、イベント サブシステムにはメイン スレッドからアクセスする必要があります。これは、他のスレッドからイベントを投稿することは可能ですが、イベント キュー自体はメイン スレッドで処理する必要があることを意味します。

したがって、この問題を解決するには、外部で pygame.event.get() を呼び出すことはできません。メインスレッド。代わりに、次のいずれかのアプローチを使用する必要があります:

  • イベントの投稿: pygame.event.post() を使用して別のスレッドからメイン スレッドにイベントをディスパッチしてユーザーと通信します。 input.
  • EventQueue クラスの使用: pygame.event.EventQueue クラスを使用すると、別のスレッドでイベントを処理できます。イベント キューを作成してスレッドに渡すことで、メインのイベント キューを変更せずにイベントを処理できます。

以上がpygame.event.get() が別のスレッドでイベントを返さないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。