PATCH player hover bug
This commit is contained in:
@@ -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():
|
||||
|
||||
@@ -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)
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user