diff --git a/src/custom_AI.py b/src/custom_AI.py index 69eb874..0d84aa2 100644 --- a/src/custom_AI.py +++ b/src/custom_AI.py @@ -19,7 +19,8 @@ class WolfAI(MobAI): player_distance = math.sqrt(x_distance ** 2 + y_distance ** 2) - #player.take_damages(1) + if player.ge_collisions_with_entity(self.entity): + player.take_damages(1) if abs(player_distance) > self.entity.max_speed: self.entity.move(x_distance / player_distance*self.entity.max_speed, diff --git a/src/engine/entity.py b/src/engine/entity.py index 7a79d2c..7a02688 100644 --- a/src/engine/entity.py +++ b/src/engine/entity.py @@ -47,8 +47,10 @@ class Entity: def set_ai(self, ai: MobAI, engine: 'Engine'): """Enregistre une classe permettant de gérer l'IA du mob.""" + + # La ligne suivante crée une instance de la classe d'IA. Cette ligne peut causer des warnings sur certains IDE + # mais elle est bien valide self.brain = ai(self, engine.entity_manager, engine.map_manager) - print(self.brain.entity) def update(self, delta: float): """Met à jour l'entité.""" @@ -80,6 +82,13 @@ class Entity: if self.life_points < 0: self.life_points = 0 + def ge_collisions_with_entity(self, other: 'Entity'): + """Retourne True si l'entité courante est en collision avec l'entité donnée.""" + return (self.x+self.collision_rect[0] <= other.x+other.collision_rect[2] and + self.x+self.collision_rect[2] >= other.x+other.collision_rect[0] and + self.y+self.collision_rect[3] >= other.y+other.collision_rect[1] and + self.y+self.collision_rect[1] <= other.y+other.collision_rect[3]) + def get_collisions(self, x: float, y: float, map_manager: MapManager): """Calcule les collisions.""" diff --git a/src/main.py b/src/main.py index db81e7d..9d4bdef 100644 --- a/src/main.py +++ b/src/main.py @@ -36,7 +36,7 @@ class Game(Engine): player.collision_rect = [-6, -7, 6, 16] player.set_default_life(15) - player.max_speed = 2. + player.max_speed = 1.1 self.entity_manager.set_player_entity("player")