From f2079261d14cafdd7f9650fb6d2044532dfc43a9 Mon Sep 17 00:00:00 2001 From: Storm Dragon Date: Wed, 10 Sep 2025 12:57:09 -0400 Subject: [PATCH] More event handling to help with pyinstaller compilation. --- display.py | 6 +++++- input.py | 9 +++++++++ menu.py | 5 ++++- sound.py | 4 ++++ 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/display.py b/display.py index fc4442d..c3e5ef7 100644 --- a/display.py +++ b/display.py @@ -177,6 +177,9 @@ def display_text(text): currentIndex = 0 speech.speak(navText[currentIndex]) + + # Clear any pending events + pygame.event.clear() while True: event = pygame.event.wait() @@ -230,5 +233,6 @@ def display_text(text): except: speech.speak("Failed to copy the text to the clipboard.") - event = pygame.event.clear() + pygame.event.pump() + pygame.event.clear() time.sleep(0.001) diff --git a/input.py b/input.py index 0a3e392..f5f6b89 100644 --- a/input.py +++ b/input.py @@ -43,6 +43,9 @@ def get_input(prompt="Enter text:", text=""): initial_message = f"{prompt} Empty text field" speak(initial_message) + # Clear any pending events + pygame.event.clear() + # Main input loop while True: event = pygame.event.wait() @@ -199,6 +202,8 @@ def get_input(prompt="Enter text:", text=""): # Allow other events to be processed pygame.event.pump() + pygame.event.clear() + time.sleep(0.001) def pause_game(): """Pauses the game until user presses backspace.""" @@ -218,6 +223,10 @@ def pause_game(): event = pygame.event.wait() if event.type == pygame.KEYDOWN and event.key == pygame.K_BACKSPACE: break + + pygame.event.pump() + pygame.event.clear() + time.sleep(0.001) try: pygame.mixer.unpause() diff --git a/menu.py b/menu.py index 44fed4f..abc5b2a 100644 --- a/menu.py +++ b/menu.py @@ -184,6 +184,7 @@ def game_menu(sounds, playCallback=None, *customOptions): pygame.mixer.stop() currentIndex = 0 lastSpoken = -1 # Track last spoken index + pygame.event.clear() while loop: if currentIndex != lastSpoken: @@ -337,7 +338,8 @@ def game_menu(sounds, playCallback=None, *customOptions): pass return allOptions[currentIndex] - event = pygame.event.clear() + pygame.event.pump() + pygame.event.clear() time.sleep(0.001) def learn_sounds(sounds): @@ -422,6 +424,7 @@ def learn_sounds(sounds): # Flag to track when to exit the loop returnToMenu = False + pygame.event.clear() while not returnToMenu: # Announce current sound diff --git a/sound.py b/sound.py index de38a17..9de6be4 100644 --- a/sound.py +++ b/sound.py @@ -73,6 +73,8 @@ class Sound: if event.type == pygame.KEYDOWN and event.key in [pygame.K_ESCAPE, pygame.K_RETURN, pygame.K_SPACE]: pygame.mixer.stop() return None + pygame.event.pump() + pygame.event.clear() pygame.time.delay(10) return None @@ -335,6 +337,8 @@ def _play_cutscene(sound, sounds=None): if event.type == pygame.KEYDOWN and event.key in [pygame.K_ESCAPE, pygame.K_RETURN, pygame.K_SPACE]: pygame.mixer.stop() return None + pygame.event.pump() + pygame.event.clear() pygame.time.delay(10) return None