Changement de la methode de mise a jour des inputs
This commit is contained in:
parent
7e1f80636d
commit
7a21731bfa
|
@ -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:
|
||||
"""
|
||||
|
|
Loading…
Reference in a new issue