From 6cbbf2edd8ea90d97c46b95ed96144109be5a67e Mon Sep 17 00:00:00 2001 From: ThisBirchWood Date: Tue, 22 Apr 2025 20:57:25 +0200 Subject: [PATCH] PATCH player hover bug --- controllers/player_controller.py | 8 +++++++- states/game.py | 7 ++++--- widgets/switch.py | 5 +---- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/controllers/player_controller.py b/controllers/player_controller.py index d997ab9..0fa4eec 100644 --- a/controllers/player_controller.py +++ b/controllers/player_controller.py @@ -3,15 +3,21 @@ from render.player_renderer import PlayerRenderer import pygame class PlayerController: - def __init__(self, player_renderer: PlayerRenderer, match: Match): + def __init__(self, player_renderer: PlayerRenderer, match: Match, game_box_top: tuple[int, int]): self.player_renderer = player_renderer self.match = match + self.game_box_top = game_box_top ## Private Methods def _update_hover_state(self, event, player): if event.type == pygame.MOUSEMOTION: mouse_x, mouse_y = event.pos player_x, player_y = self.player_renderer.map_coord_converter.map_to_screen(player.x, player.y) + + # Adjust for game box position + player_x += self.game_box_top[0] + player_y += self.game_box_top[1] + distance = ((mouse_x - player_x) ** 2 + (mouse_y - player_y) ** 2) ** 0.5 if distance < self.player_renderer.get_radius(): diff --git a/states/game.py b/states/game.py index 0852122..3fb6066 100644 --- a/states/game.py +++ b/states/game.py @@ -16,8 +16,9 @@ class Game(GameState): # Game Box self.game_box = pygame.Surface((600, 600), pygame.SRCALPHA) + self.game_box_top_left = (350, 0) - # Map Coordinate Helper Class + # Helper Classes self.map_coord_controller = MapCoordConverter(self.game_box.get_width(), self.game_box.get_height(), match_data_path, match_image_path) # Renderers @@ -26,7 +27,7 @@ class Game(GameState): self.gui_render = GUIRenderer(self.screen, self.match) # Controllers - self.player_controller = PlayerController(self.player_renderer, self.match) + self.player_controller = PlayerController(self.player_renderer, self.match, self.game_box_top_left) self.gui_controller = GUIController(self.gui_render, self.switch_state, self.context["previous_states"]) @@ -50,4 +51,4 @@ class Game(GameState): self.map_renderer.render() self.player_renderer.render() self.gui_render.render() - self.screen.blit(self.game_box, (350, 0)) \ No newline at end of file + self.screen.blit(self.game_box, self.game_box_top_left) \ No newline at end of file diff --git a/widgets/switch.py b/widgets/switch.py index 7bc5033..b150b24 100644 --- a/widgets/switch.py +++ b/widgets/switch.py @@ -57,10 +57,7 @@ class Switch: ## Private methods def _press(self): """Toggle the switch state.""" - if self.is_toggled == True: - self.is_toggled = False - else: - self.is_toggled = True + self.is_toggled = not self.is_toggled ## Public methods def handle_event(self, event):