Ajout de la lecture des dialogues
This commit is contained in:
parent
4a88bb4f8f
commit
011c7f4895
4
assets/dialogs.json
Normal file
4
assets/dialogs.json
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"test": ["test1", "test2", "test très long permettant de tester le retour à la ligne dans le renderer du jeu dans la fonction qui rend les dialogues et il faut éviter d'en faire des si long car ça pourrait dépacer en base de l'écran ! Bonne journée !"],
|
||||||
|
"test2": ["salut", "aurevoir"]
|
||||||
|
}
|
|
@ -4,10 +4,27 @@ import json
|
||||||
class DialogsManager:
|
class DialogsManager:
|
||||||
"""Classe qui gère la lecture des dialogues."""
|
"""Classe qui gère la lecture des dialogues."""
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.current_dialog = []
|
self.current_dialogs = []
|
||||||
|
self.current_dialog_id = -1
|
||||||
self.dialogs = {}
|
self.dialogs = {}
|
||||||
|
|
||||||
|
def next_dialog(self):
|
||||||
|
"""Passe au dialogue suivant. Renvoie True si le dialogue est fini."""
|
||||||
|
self.current_dialog_id += 1
|
||||||
|
if self.current_dialog_id == len(self.current_dialogs):
|
||||||
|
self.current_dialogs = []
|
||||||
|
self.current_dialog_id = -1
|
||||||
|
|
||||||
|
def start_dialog(self, name: str):
|
||||||
|
"""Lance le dialogue au nom donné."""
|
||||||
|
self.current_dialogs = self.dialogs[name]
|
||||||
|
self.current_dialog_id = 0
|
||||||
|
|
||||||
|
def get_current_dialog_sentence(self) -> str:
|
||||||
|
"""Renvoie la phrase actuelle du dialogue."""
|
||||||
|
return self.current_dialogs[self.current_dialog_id]
|
||||||
|
|
||||||
def load_dialogs(self, file_path: str):
|
def load_dialogs(self, file_path: str):
|
||||||
"""Charge les dialogues du jeu grave au fichier json donné."""
|
"""Charge les dialogues du jeu grave au fichier json donné."""
|
||||||
with open(file_path, "r") as file:
|
with open(file_path, "r", encoding="utf-8") as file:
|
||||||
self.dialogs = json.loads(file.read())
|
self.dialogs = json.loads(file.read())
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
from src.engine.boss_fight_manager import BossFightManager
|
from src.engine.boss_fight_manager import BossFightManager
|
||||||
from src.engine.camera import Camera
|
from src.engine.camera import Camera
|
||||||
|
from src.engine.dialogs_manager import DialogsManager
|
||||||
from src.engine.entity_manager import EntityManager
|
from src.engine.entity_manager import EntityManager
|
||||||
from src.engine.event_handler import EventHandler
|
from src.engine.event_handler import EventHandler
|
||||||
from src.engine.event_sheduler import EventSheduler
|
from src.engine.event_sheduler import EventSheduler
|
||||||
|
@ -33,6 +34,7 @@ class Engine:
|
||||||
self.entity_manager = EntityManager(self.map_manager)
|
self.entity_manager = EntityManager(self.map_manager)
|
||||||
self.boss_fight_manager = BossFightManager(self)
|
self.boss_fight_manager = BossFightManager(self)
|
||||||
self.event_sheduler = EventSheduler(self)
|
self.event_sheduler = EventSheduler(self)
|
||||||
|
self.dialogs_manager = DialogsManager()
|
||||||
|
|
||||||
def loop(self):
|
def loop(self):
|
||||||
"""Fonction à lancer au début du programme et qui va lancer les updates dans une boucle.
|
"""Fonction à lancer au début du programme et qui va lancer les updates dans une boucle.
|
||||||
|
|
|
@ -12,6 +12,7 @@ class Game(Engine):
|
||||||
self.map_manager.load_new("maps/map5.tmj")
|
self.map_manager.load_new("maps/map5.tmj")
|
||||||
|
|
||||||
self.renderer.load_tile_set("assets/textures/tileset.png", 16)
|
self.renderer.load_tile_set("assets/textures/tileset.png", 16)
|
||||||
|
self.dialogs_manager.load_dialogs("assets/dialogs.json")
|
||||||
|
|
||||||
self.create_player_entity()
|
self.create_player_entity()
|
||||||
self.load_boss_fight_assets()
|
self.load_boss_fight_assets()
|
||||||
|
|
Loading…
Reference in a new issue