diff --git a/engine/plugins/pygame.py b/engine/plugins/pygame.py index 0b0806d..dd009b6 100644 --- a/engine/plugins/pygame.py +++ b/engine/plugins/pygame.py @@ -18,43 +18,37 @@ class PygamePlugin(Plugin): pygame.init() # Initialisation des ressources - world.set(Display(pygame.display.set_mode((640, 480)))) - world.set(Keyboard(set(), set(), set())) - world.set(Mouse(set(), set(), set(), Vec2(0.0, 0.0))) + world.set(Display(pygame.display.set_mode((640, 480))), Keyboard(), Mouse()) @staticmethod def _check_events(world: World) -> None: - keys = world[Keyboard]._keys.copy() - keys_pressed: set[str] = set() - keys_released: set[str] = set() + keyboard = world[Keyboard] + keyboard._pressed.clear() + keyboard._released.clear() - buttons = world[Mouse]._buttons.copy() - buttons_pressed: set[int] = set() - buttons_released: set[int] = set() - mouse_position = world[Mouse]._position + mouse = world[Mouse] + mouse._pressed.clear() + mouse._released.clear() for event in pygame.event.get(): if event.type == pygame.QUIT: world[Game].stop() elif event.type == pygame.KEYDOWN: key_name = pygame.key.name(event.key) - keys.add(key_name) - keys_pressed.add(key_name) + keyboard._keys.add(key_name) + keyboard._pressed.add(key_name) elif event.type == pygame.KEYUP: key_name = pygame.key.name(event.key) - keys.remove(key_name) - keys_released.add(key_name) + keyboard._keys.remove(key_name) + keyboard._released.add(key_name) elif event.type == pygame.MOUSEBUTTONDOWN: - buttons.add(event.button) - buttons_pressed.add(event.button) + mouse._buttons.add(event.button) + mouse._pressed.add(event.button) elif event.type == pygame.MOUSEBUTTONUP: - buttons.remove(event.button) - buttons_released.add(event.button) + mouse._buttons.remove(event.button) + mouse._released.add(event.button) elif event.type == pygame.MOUSEMOTION: - mouse_position = Vec2(float(event.pos[0]), float(event.pos[1])) - - world.set(Keyboard(keys, keys_pressed, keys_released)) - world.set(Mouse(buttons, buttons_pressed, buttons_released, mouse_position)) + mouse._position = Vec2(float(event.pos[0]), float(event.pos[1])) @staticmethod def _terminate_pygame(world: World) -> None: @@ -106,10 +100,10 @@ class Keyboard: Ressource qui représente les entrées utilisateurs sur le clavier à la frame actuelle. """ - def __init__(self, keys: set[str], pressed: set[str], released: set[str]) -> None: - self._keys = keys - self._pressed = pressed - self._released = released + def __init__(self) -> None: + self._keys: set[str] = set() + self._pressed: set[str] = set() + self._released: set[str] = set() def is_key_pressed(self, key_name: str) -> bool: """ @@ -153,13 +147,11 @@ class Mouse: Ressource qui représente l'état de la souris à la frame actuelle. """ - def __init__( - self, buttons: set[int], pressed: set[int], released: set[int], position: Vec2 - ) -> None: - self._buttons = buttons - self._pressed = pressed - self._released = released - self._position = position + def __init__(self) -> None: + self._buttons: set[int] = set() + self._pressed: set[int] = set() + self._released: set[int] = set() + self._position: Vec2 = Vec2(0.0, 0.0) def is_button_pressed(self, button: int) -> bool: """