Skip to content
Snippets Groups Projects
Commit 5dd9a465 authored by Fabian Heinrich's avatar Fabian Heinrich
Browse files

Better management of when keyboard or controller button to continue is...

Better management of when keyboard or controller button to continue is pressed. Updated thank you screen.
parent 5034fb43
No related branches found
No related tags found
1 merge request!74Resolve "Study instructions"
Pipeline #47935 passed
......@@ -839,15 +839,31 @@ class PyGameGUI:
# End screen
########################################################################
conclusion_rect = pygame.Rect(
0, 0, self.window_width * 0.6, self.window_height * 0.4
rect = pygame.Rect(0, 0, self.window_width * 0.9, self.window_height * 0.4)
final_text_container = pygame_gui.elements.UIPanel(
relative_rect=rect,
manager=self.manager,
object_id="#graph_container",
anchors={"center": "center"},
)
self.thank_you_label = pygame_gui.elements.UILabel(
text="Thank you!",
relative_rect=conclusion_rect,
rect = pygame.Rect((0, 0), (-1, -1))
text1 = pygame_gui.elements.UILabel(
text="Thank you for participanting in this study :)",
relative_rect=rect,
manager=self.manager,
object_id="#score_label",
anchors={"center": "center"},
container=final_text_container,
anchors={"top": "top", "left": "left", "right": "right"},
)
rect = pygame.Rect((0, 0), (-1, -1))
text2 = pygame_gui.elements.UILabel(
text="Please wait for instructions from the study supervisor.",
relative_rect=rect,
manager=self.manager,
object_id="#score_label",
container=final_text_container,
anchors={"top_target": text1, "left": "left", "right": "right"},
)
########################################################################
......@@ -901,7 +917,7 @@ class PyGameGUI:
self.end_screen_elements = [
self.fullscreen_button,
self.quit_button,
self.thank_you_label,
final_text_container,
]
self.rest = [
......@@ -1468,7 +1484,7 @@ class PyGameGUI:
def stop_game_on_server(self, reason: str) -> None:
log.debug(f"Stopping game: {reason}")
if not self.CONNECT_WITH_STUDY_SERVER:
requests.post(
answer = requests.post(
f"{self.request_url}/manage/stop_env/",
json={
"manager_id": self.manager_id,
......@@ -1476,6 +1492,12 @@ class PyGameGUI:
"reason": reason,
},
)
if answer.status_code != 200:
log.warning(
"Could not send level done.",
answer.status_code,
answer.json()["detail"],
)
def send_tutorial_finished(self):
requests.post(
......@@ -1619,7 +1641,13 @@ class PyGameGUI:
)
def send_level_done(self):
_ = requests.post(f"{self.request_url}/level_done/{self.participant_id}").json()
answer = requests.post(f"{self.request_url}/level_done/{self.participant_id}")
if answer.status_code != 200:
log.warning(
"Could not send level done.",
answer.status_code,
answer.json()["detail"],
)
def button_continue_postgame_pressed(self):
if self.CONNECT_WITH_STUDY_SERVER:
......@@ -1635,7 +1663,7 @@ class PyGameGUI:
self.menu_state = MenuStates.PreGame
def manage_button_event(self, button: pygame_gui.core.UIElement):
def manage_button_event(self, button: pygame_gui.core.UIElement | None = None):
if button == self.quit_button:
if self.fullscreen:
self.fullscreen_button_press()
......@@ -1696,34 +1724,26 @@ class PyGameGUI:
############################################
case MenuStates.ControllerTutorial:
match button:
case self.continue_button:
self.exit_tutorial()
if self.CONNECT_WITH_STUDY_SERVER:
self.start_study()
else:
self.create_env_on_game_server(tutorial=False)
self.exit_tutorial()
if self.CONNECT_WITH_STUDY_SERVER:
self.start_study()
else:
self.create_env_on_game_server(tutorial=False)
############################################
case MenuStates.PreGame:
match button:
case self.continue_button:
self.setup_game()
self.set_game_size()
self.menu_state = MenuStates.Game
self.setup_game()
self.set_game_size()
self.menu_state = MenuStates.Game
############################################
case MenuStates.PostGame:
match button:
case self.next_game_button:
self.button_continue_postgame_pressed()
case self.finish_study_button:
self.menu_state = MenuStates.End
if self.last_level:
self.menu_state = MenuStates.End
else:
self.button_continue_postgame_pressed()
############################################
......@@ -1791,19 +1811,17 @@ class PyGameGUI:
and event.key == pygame.K_RETURN
)
):
match self.menu_state:
case MenuStates.Start:
self.manage_button_event(self.start_button)
case MenuStates.ControllerTutorial:
self.manage_button_event(self.continue_button)
case MenuStates.PreGame:
self.manage_button_event(self.continue_button)
case MenuStates.PostGame:
if self.last_level:
self.manage_button_event(self.next_game_button)
else:
self.manage_button_event(self.finish_study_button)
self.update_screen_elements()
if self.menu_state == MenuStates.Start:
self.manage_button_event(self.start_button)
self.update_screen_elements()
elif self.menu_state in [
MenuStates.ControllerTutorial,
MenuStates.PreGame,
MenuStates.PostGame,
]:
self.manage_button_event()
self.update_screen_elements()
if event.type == pygame_gui.UI_BUTTON_PRESSED:
self.manage_button_event(event.ui_element)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment