Debut implementation des IA de mobs
This commit is contained in:
parent
ea2f02b2ab
commit
361837795c
10
src/custom_AI.py
Normal file
10
src/custom_AI.py
Normal file
|
@ -0,0 +1,10 @@
|
|||
from src.engine.entity import Entity
|
||||
from src.engine.mobs_AI import MobAI
|
||||
|
||||
|
||||
class WolfAI(MobAI):
|
||||
def __init__(self, entity: Entity):
|
||||
super().__init__(entity)
|
||||
|
||||
def update(self):
|
||||
self.entity.x += 1
|
|
@ -1,6 +1,7 @@
|
|||
import math
|
||||
|
||||
from src.engine.map_manager import MapManager
|
||||
from src.engine.mobs_AI import MobAI
|
||||
|
||||
|
||||
class Entity:
|
||||
|
@ -31,6 +32,7 @@ class Entity:
|
|||
|
||||
# Time utilisé pour les IA
|
||||
self.time = 0
|
||||
self.brain: MobAI | None = None
|
||||
|
||||
self.name = name
|
||||
|
||||
|
@ -43,6 +45,11 @@ class Entity:
|
|||
self.life_points = life
|
||||
self.max_life_points = life
|
||||
|
||||
def set_ai(self, ai: MobAI):
|
||||
self.brain = ai
|
||||
self.brain.__init__(self)
|
||||
print(ai.entity)
|
||||
|
||||
def update(self, delta: float):
|
||||
"""Met à jour l'entité."""
|
||||
self.time += delta
|
||||
|
|
9
src/engine/mobs_AI.py
Normal file
9
src/engine/mobs_AI.py
Normal file
|
@ -0,0 +1,9 @@
|
|||
from src.engine.entity import Entity
|
||||
|
||||
|
||||
class MobAI:
|
||||
def __init__(self, entity: Entity):
|
||||
self.entity = entity
|
||||
|
||||
def update(self):
|
||||
pass
|
12
src/main.py
12
src/main.py
|
@ -1,5 +1,6 @@
|
|||
import pygame.image
|
||||
|
||||
from src.custom_AI import WolfAI
|
||||
from src.engine.animation import Anim
|
||||
from src.engine.engine import Engine
|
||||
from src.engine.enums import GameState
|
||||
|
@ -15,7 +16,7 @@ class Game(Engine):
|
|||
self.create_player_entity()
|
||||
self.load_boss_fight_assets()
|
||||
|
||||
self.DEBUG_MODE = False
|
||||
self.DEBUG_MODE = True
|
||||
|
||||
self.game_state = GameState.NORMAL
|
||||
|
||||
|
@ -33,7 +34,7 @@ class Game(Engine):
|
|||
player.link_animation("player_none")
|
||||
player.collision_rect = [-6, -7, 6, 16]
|
||||
|
||||
player.set_default_life(10)
|
||||
player.set_default_life(15)
|
||||
player.max_speed = 1.
|
||||
|
||||
self.entity_manager.set_player_entity("player")
|
||||
|
@ -43,6 +44,13 @@ class Game(Engine):
|
|||
|
||||
self.camera.follow_entity(player)
|
||||
|
||||
def spawn_mobs(self):
|
||||
"""Fait apparaitre les mobs de la map."""
|
||||
mob = self.entity_manager.register_entity("wolf1")
|
||||
mob.set_ai(WolfAI)
|
||||
|
||||
|
||||
|
||||
def load_boss_fight_assets(self):
|
||||
"""Charge les animations de combat des combats de boss."""
|
||||
player_none = Anim(1)
|
||||
|
|
Loading…
Reference in a new issue