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

View File

@@ -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))
self.screen.blit(self.game_box, self.game_box_top_left)

View File

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