diff --git a/src/engine/camera.py b/src/engine/camera.py index 9be655f..7850bad 100644 --- a/src/engine/camera.py +++ b/src/engine/camera.py @@ -2,10 +2,10 @@ from src.engine.entity import Entity class Camera: - def __init__(self): + def __init__(self, DEBUG_MODE: bool, zoom: float): self.x = 0 self.y = 0 - self.zoom = 1. + self.zoom = zoom # Décalage lors du mouvement du joueur self.player_moving_offset = 100 @@ -19,9 +19,12 @@ class Camera: self.followed_entity: Entity | None = None - def update(self): + def update(self, zoom: float): """Met à jour la caméra. Permet, par exemple, de faire le scrolling.""" + if not self.DEBUG_MODE: + self.zoom = zoom + # Si on suit une entité, on met à jour les coordonnées de suivi if self.followed_entity is not None: self.target_x = (self.followed_entity.x + self.followed_entity.mouvements[0] * diff --git a/src/engine/engine.py b/src/engine/engine.py index 1a46a14..58b9765 100644 --- a/src/engine/engine.py +++ b/src/engine/engine.py @@ -33,7 +33,7 @@ class Engine: self.renderer = Renderer(self) self.event_handler = EventHandler(self) self.map_manager = MapManager() - self.camera = Camera() + self.camera = Camera(self.DEBUG_MODE, self.settings_manager.get_zoom()) self.entity_manager = EntityManager(self.map_manager) self.boss_fight_manager = BossFightManager(self) self.event_sheduler = EventSheduler(self) @@ -53,7 +53,7 @@ class Engine: def update(self): """Fonction qui regroupe toutes les updates des composants. Elle permet de mettre à jour le jeu quand on l'appelle.""" - self.camera.update() + self.camera.update(self.settings_manager.get_zoom()) self.entity_manager.update(0.016666666) self.renderer.update(0.016666666) self.event_handler.update() diff --git a/src/engine/event_handler.py b/src/engine/event_handler.py index 1568ed0..c2c017f 100644 --- a/src/engine/event_handler.py +++ b/src/engine/event_handler.py @@ -112,6 +112,6 @@ class EventHandler: f"Y = {self.engine.entity_manager.get_by_name('player').y}") if K_x in self.key_pressed: - self.engine.camera.target_zoom *= 1.01 + self.engine.settings_manager.zoom *= 1.01 if K_c in self.key_pressed: - self.engine.camera.target_zoom *= 0.99 + self.engine.settings_manager.zoom *= 0.99 diff --git a/src/engine/renderer.py b/src/engine/renderer.py index 4a3389e..e73bc87 100644 --- a/src/engine/renderer.py +++ b/src/engine/renderer.py @@ -122,7 +122,7 @@ class Renderer: player = self.engine.entity_manager.get_by_name('player') self.window.blit(font.SysFont("Arial", 20).render(f"X: {round(player.x, 2)} Y:{round(player.y, 2)}", True, (255, 0, 0)), (0, 30)) - self.window.blit(font.SysFont("Arial", 20).render(f"Zoom: {round(self.engine.camera.zoom, 2)}", + self.window.blit(font.SysFont("Arial", 20).render(f"Zoom: {round(self.engine.settings_manager.get_zoom(), 2)}", True, (255, 0, 0)), (0, 60)) self.window.blit(font.SysFont("Arial", 20).render(f"Volume: {self.engine.sound_manager.music_get_volume()}, Pos: {self.engine.sound_manager.music_get_current_song_pos()}s, Index: {self.engine.sound_manager.music_current_index}, Paused: {self.engine.sound_manager.music_is_paused}", True, (255, 0, 0)), (0, 90)) diff --git a/src/engine/settings_manager.py b/src/engine/settings_manager.py index ce3e2f1..c38e887 100644 --- a/src/engine/settings_manager.py +++ b/src/engine/settings_manager.py @@ -7,7 +7,9 @@ class SettingsManager: self.zoom = 1.75 - + def get_zoom(self): + return self.zoom + def get_music_master_volume(self): return round(self.master_volume / 100 * self.music_master_volume, 3)