PATCH player hover bug

This commit is contained in:
2025-04-22 20:57:25 +02:00
parent daa284ed95
commit 6cbbf2edd8
3 changed files with 12 additions and 8 deletions

View File

@@ -3,15 +3,21 @@ from render.player_renderer import PlayerRenderer
import pygame import pygame
class PlayerController: 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.player_renderer = player_renderer
self.match = match self.match = match
self.game_box_top = game_box_top
## Private Methods ## Private Methods
def _update_hover_state(self, event, player): def _update_hover_state(self, event, player):
if event.type == pygame.MOUSEMOTION: if event.type == pygame.MOUSEMOTION:
mouse_x, mouse_y = event.pos mouse_x, mouse_y = event.pos
player_x, player_y = self.player_renderer.map_coord_converter.map_to_screen(player.x, player.y) 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 distance = ((mouse_x - player_x) ** 2 + (mouse_y - player_y) ** 2) ** 0.5
if distance < self.player_renderer.get_radius(): if distance < self.player_renderer.get_radius():

View File

@@ -16,8 +16,9 @@ class Game(GameState):
# Game Box # Game Box
self.game_box = pygame.Surface((600, 600), pygame.SRCALPHA) 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) self.map_coord_controller = MapCoordConverter(self.game_box.get_width(), self.game_box.get_height(), match_data_path, match_image_path)
# Renderers # Renderers
@@ -26,7 +27,7 @@ class Game(GameState):
self.gui_render = GUIRenderer(self.screen, self.match) self.gui_render = GUIRenderer(self.screen, self.match)
# Controllers # 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"]) 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.map_renderer.render()
self.player_renderer.render() self.player_renderer.render()
self.gui_render.render() self.gui_render.render()
self.screen.blit(self.game_box, (350, 0)) self.screen.blit(self.game_box, self.game_box_top_left)

View File

@@ -57,10 +57,7 @@ class Switch:
## Private methods ## Private methods
def _press(self): def _press(self):
"""Toggle the switch state.""" """Toggle the switch state."""
if self.is_toggled == True: self.is_toggled = not self.is_toggled
self.is_toggled = False
else:
self.is_toggled = True
## Public methods ## Public methods
def handle_event(self, event): def handle_event(self, event):