Heim >Backend-Entwicklung >Python-Tutorial >Warum gibt pygame.event.get() keine Ereignisse in einem separaten Thread zurück?
pygame.event.get() gibt keine Ereignisse im Thread zurück
Um die Verarbeitung von Benutzereingaben zu optimieren, hat ein Benutzer a implementiert Thread, um Eingabeereignisse getrennt von der Hauptschleife des Spiels zu verarbeiten. Das Problem tritt jedoch auf, wenn pygame.event.get() innerhalb des Threads verwendet wird, da es keine Ereignisse zurückgibt.
Die Erklärung liegt im von pygame verwendeten Threading-Modell. Laut Dokumentation muss auf das Event-Subsystem vom Hauptthread aus zugegriffen werden. Dies bedeutet, dass es zwar möglich ist, Ereignisse aus anderen Threads zu veröffentlichen, die Ereigniswarteschlange selbst jedoch im Hauptthread behandelt werden muss.
Um dieses Problem zu beheben, kann daher pygame.event.get() nicht außerhalb aufgerufen werden der Hauptthread. Stattdessen sollte man einen der folgenden Ansätze verwenden:
Das obige ist der detaillierte Inhalt vonWarum gibt pygame.event.get() keine Ereignisse in einem separaten Thread zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!