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