Compare commits

...

1 Commits

Author SHA1 Message Date
Storm Dragon
f2079261d1 More event handling to help with pyinstaller compilation. 2025-09-10 12:57:09 -04:00
4 changed files with 22 additions and 2 deletions

View File

@@ -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)

View File

@@ -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()

View File

@@ -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

View File

@@ -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