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
|
import math
|
||||||
|
|
||||||
from src.engine.map_manager import MapManager
|
from src.engine.map_manager import MapManager
|
||||||
|
from src.engine.mobs_AI import MobAI
|
||||||
|
|
||||||
|
|
||||||
class Entity:
|
class Entity:
|
||||||
|
@ -31,6 +32,7 @@ class Entity:
|
||||||
|
|
||||||
# Time utilisé pour les IA
|
# Time utilisé pour les IA
|
||||||
self.time = 0
|
self.time = 0
|
||||||
|
self.brain: MobAI | None = None
|
||||||
|
|
||||||
self.name = name
|
self.name = name
|
||||||
|
|
||||||
|
@ -43,6 +45,11 @@ class Entity:
|
||||||
self.life_points = life
|
self.life_points = life
|
||||||
self.max_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):
|
def update(self, delta: float):
|
||||||
"""Met à jour l'entité."""
|
"""Met à jour l'entité."""
|
||||||
self.time += delta
|
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
|
import pygame.image
|
||||||
|
|
||||||
|
from src.custom_AI import WolfAI
|
||||||
from src.engine.animation import Anim
|
from src.engine.animation import Anim
|
||||||
from src.engine.engine import Engine
|
from src.engine.engine import Engine
|
||||||
from src.engine.enums import GameState
|
from src.engine.enums import GameState
|
||||||
|
@ -15,7 +16,7 @@ class Game(Engine):
|
||||||
self.create_player_entity()
|
self.create_player_entity()
|
||||||
self.load_boss_fight_assets()
|
self.load_boss_fight_assets()
|
||||||
|
|
||||||
self.DEBUG_MODE = False
|
self.DEBUG_MODE = True
|
||||||
|
|
||||||
self.game_state = GameState.NORMAL
|
self.game_state = GameState.NORMAL
|
||||||
|
|
||||||
|
@ -33,7 +34,7 @@ class Game(Engine):
|
||||||
player.link_animation("player_none")
|
player.link_animation("player_none")
|
||||||
player.collision_rect = [-6, -7, 6, 16]
|
player.collision_rect = [-6, -7, 6, 16]
|
||||||
|
|
||||||
player.set_default_life(10)
|
player.set_default_life(15)
|
||||||
player.max_speed = 1.
|
player.max_speed = 1.
|
||||||
|
|
||||||
self.entity_manager.set_player_entity("player")
|
self.entity_manager.set_player_entity("player")
|
||||||
|
@ -43,6 +44,13 @@ class Game(Engine):
|
||||||
|
|
||||||
self.camera.follow_entity(player)
|
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):
|
def load_boss_fight_assets(self):
|
||||||
"""Charge les animations de combat des combats de boss."""
|
"""Charge les animations de combat des combats de boss."""
|
||||||
player_none = Anim(1)
|
player_none = Anim(1)
|
||||||
|
|
Loading…
Reference in a new issue