2023-12-22 14:11:21 +00:00
|
|
|
from pygame import event
|
2023-12-22 20:34:42 +00:00
|
|
|
from pygame.locals import *
|
2023-12-22 14:11:21 +00:00
|
|
|
|
2023-12-26 16:19:29 +00:00
|
|
|
import src.engine.engine as engine
|
2023-12-22 14:11:21 +00:00
|
|
|
|
|
|
|
|
|
|
|
class EventHandler:
|
|
|
|
"""Classe utilisée pour traiter les pygame.event.get() et gérer les interactions avec le reste du programme."""
|
|
|
|
def __init__(self, core: 'engine.Engine'):
|
|
|
|
self.engine = core
|
2023-12-22 20:34:42 +00:00
|
|
|
self.key_pressed = []
|
2023-12-22 14:11:21 +00:00
|
|
|
|
|
|
|
def update(self):
|
|
|
|
"""Vérifie s'il y a de nouvelles interactions et les traites."""
|
2023-12-22 20:34:42 +00:00
|
|
|
|
|
|
|
# Récupère les événements
|
2023-12-22 14:11:21 +00:00
|
|
|
for e in event.get():
|
|
|
|
if e.type == QUIT:
|
|
|
|
self.engine.stop()
|
2023-12-22 20:34:42 +00:00
|
|
|
elif e.type == KEYDOWN:
|
|
|
|
self.key_pressed.append(e.key)
|
|
|
|
elif e.type == KEYUP:
|
|
|
|
self.key_pressed.remove(e.key)
|
|
|
|
|
2023-12-29 18:12:31 +00:00
|
|
|
if self.engine.entity_manager.player_entity_name:
|
|
|
|
if K_RIGHT in self.key_pressed:
|
|
|
|
self.engine.entity_manager.move_player_controls(1, 0)
|
|
|
|
if K_LEFT in self.key_pressed:
|
|
|
|
self.engine.entity_manager.move_player_controls(-1, 0)
|
|
|
|
if K_UP in self.key_pressed:
|
|
|
|
self.engine.entity_manager.move_player_controls(0, -1)
|
|
|
|
if K_DOWN in self.key_pressed:
|
|
|
|
self.engine.entity_manager.move_player_controls(0, 1)
|
|
|
|
if K_l in self.key_pressed:
|
|
|
|
self.engine.entity_manager.get_by_name("player").take_damages(1)
|
|
|
|
|
2023-12-22 20:34:42 +00:00
|
|
|
if K_x in self.key_pressed:
|
2023-12-23 08:24:58 +00:00
|
|
|
self.engine.camera.target_zoom *= 1.01
|
2023-12-22 20:34:42 +00:00
|
|
|
if K_c in self.key_pressed:
|
2023-12-23 08:24:58 +00:00
|
|
|
self.engine.camera.target_zoom *= 0.99
|
2023-12-26 15:28:09 +00:00
|
|
|
|