Modification des mouvements du joueur

This commit is contained in:
Yannis 2023-12-29 19:12:31 +01:00
parent 2b4582e8b4
commit 7c203a5d36
4 changed files with 29 additions and 18 deletions

View file

@ -29,7 +29,7 @@ class Engine:
self.event_handler = EventHandler(self)
self.map_manager = MapManager()
self.camera = Camera()
self.entity_manager = EntityManager()
self.entity_manager = EntityManager(self.map_manager)
self.boss_fight_manager = BossFightManager(self)
def loop(self):

View file

@ -1,10 +1,13 @@
from src.engine.entity import Entity
from src.engine.map_manager import MapManager
class EntityManager:
"""Classe chargée de gérer les entités."""
def __init__(self):
def __init__(self, map_manager: MapManager):
self.entities: dict[str:Entity] = {}
self.player_entity_name = ""
self.map_manager = map_manager
def register_entity(self, name: str):
"""Crée une entité et l'enregistre dans un dictionnaire."""
@ -12,6 +15,15 @@ class EntityManager:
self.entities[name] = entity
return entity
def set_player_entity(self, name: str):
"""Définit l'entité donnée comme le joueur. Elle peut donc être controlée."""
self.player_entity_name = name
def move_player_controls(self, x: float, y: float):
"""Bouge le joueur. X et y doivent être compris entre 0 et 1"""
player: Entity = self.get_by_name(self.player_entity_name)
player.move(x, y, self.map_manager)
def update(self, delta: float):
"""Met à jour toutes les entités enregistrées."""
for entity_name in list(self.entities.keys()):

View file

@ -22,24 +22,20 @@ class EventHandler:
elif e.type == KEYUP:
self.key_pressed.remove(e.key)
player = self.engine.entity_manager.get_by_name("player")
player.link_animation("player_none")
if self.engine.entity_manager.player_entity_name:
if K_RIGHT in self.key_pressed:
player.move(2, 0, self.engine.map_manager)
player.link_animation("player_walking")
self.engine.entity_manager.move_player_controls(1, 0)
if K_LEFT in self.key_pressed:
player.move(-2, 0, self.engine.map_manager)
player.link_animation("player_walking")
self.engine.entity_manager.move_player_controls(-1, 0)
if K_UP in self.key_pressed:
player.move(0, -2, self.engine.map_manager)
player.link_animation("player_walking")
self.engine.entity_manager.move_player_controls(0, -1)
if K_DOWN in self.key_pressed:
player.move(0, 2, self.engine.map_manager)
player.link_animation("player_walking")
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)
if K_x in self.key_pressed:
self.engine.camera.target_zoom *= 1.01
if K_c in self.key_pressed:
self.engine.camera.target_zoom *= 0.99
if K_l in self.key_pressed:
player.take_damages(1)

View file

@ -34,6 +34,9 @@ class Game(Engine):
player.collision_rect = [-6, -7, 6, 16]
player.set_default_life(10)
player.max_speed = 2.
self.entity_manager.set_player_entity("player")
self.camera.follow_entity(player)