Pygame.event.get() gibt keine Ereignisse innerhalb eines Threads zurück
Bei Verwendung des bereitgestellten Codes zur Verarbeitung von Benutzereingaben innerhalb eines Pac - Bei einem Spiel im Man-Stil tritt das Problem auf, wenn beim Drücken von Tastaturtasten keine Ereignisse empfangen werden. Mausbewegungen lösen jedoch weiterhin Ereignisreaktionen aus.
Diese Anomalie tritt auf, weil das Ereignissubsystem in Pygame ausschließlich innerhalb des Hauptthreads arbeitet. Trotz der Versuche, nicht registrierte Tastenanschläge durch die Einbindung eines Threads zu minimieren, heißt es in der Dokumentation ausdrücklich:
Das Ereignissubsystem sollte vom Hauptthread aufgerufen werden.
Obwohl das Posten von Ereignissen aus anderen Threads möglich ist, ist es daher möglich, Die Verarbeitung der Ereigniswarteschlange bleibt das Vorrecht des Hauptthreads. Um dieses Problem zu beheben, müssen Ereignisse innerhalb des Hauptthreads abgerufen werden, um ihre ordnungsgemäße Funktionalität innerhalb Ihrer Spielschleife sicherzustellen.
Das obige ist der detaillierte Inhalt vonWarum gibt Pygame.event.get() keine Ereignisse zurück, wenn es in einem Thread verwendet wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!