Added zoom control from settings_manager (debug mode still works)

This commit is contained in:
Adastram 2024-01-10 10:42:20 +01:00
parent 988500af43
commit 0502f1d278
5 changed files with 14 additions and 9 deletions

View file

@ -2,10 +2,10 @@ from src.engine.entity import Entity
class Camera: class Camera:
def __init__(self): def __init__(self, DEBUG_MODE: bool, zoom: float):
self.x = 0 self.x = 0
self.y = 0 self.y = 0
self.zoom = 1. self.zoom = zoom
# Décalage lors du mouvement du joueur # Décalage lors du mouvement du joueur
self.player_moving_offset = 100 self.player_moving_offset = 100
@ -19,9 +19,12 @@ class Camera:
self.followed_entity: Entity | None = None 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.""" """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 # Si on suit une entité, on met à jour les coordonnées de suivi
if self.followed_entity is not None: if self.followed_entity is not None:
self.target_x = (self.followed_entity.x + self.followed_entity.mouvements[0] * self.target_x = (self.followed_entity.x + self.followed_entity.mouvements[0] *

View file

@ -33,7 +33,7 @@ class Engine:
self.renderer = Renderer(self) self.renderer = Renderer(self)
self.event_handler = EventHandler(self) self.event_handler = EventHandler(self)
self.map_manager = MapManager() 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.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)
@ -53,7 +53,7 @@ class Engine:
def update(self): def update(self):
"""Fonction qui regroupe toutes les updates des composants. Elle permet de mettre à jour le jeu quand on """Fonction qui regroupe toutes les updates des composants. Elle permet de mettre à jour le jeu quand on
l'appelle.""" l'appelle."""
self.camera.update() self.camera.update(self.settings_manager.get_zoom())
self.entity_manager.update(0.016666666) self.entity_manager.update(0.016666666)
self.renderer.update(0.016666666) self.renderer.update(0.016666666)
self.event_handler.update() self.event_handler.update()

View file

@ -112,6 +112,6 @@ class EventHandler:
f"Y = {self.engine.entity_manager.get_by_name('player').y}") f"Y = {self.engine.entity_manager.get_by_name('player').y}")
if K_x in self.key_pressed: 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: if K_c in self.key_pressed:
self.engine.camera.target_zoom *= 0.99 self.engine.settings_manager.zoom *= 0.99

View file

@ -122,7 +122,7 @@ class Renderer:
player = self.engine.entity_manager.get_by_name('player') 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)}", 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)) 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)) 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}", 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)) True, (255, 0, 0)), (0, 90))

View file

@ -7,7 +7,9 @@ class SettingsManager:
self.zoom = 1.75 self.zoom = 1.75
def get_zoom(self):
return self.zoom
def get_music_master_volume(self): def get_music_master_volume(self):
return round(self.master_volume / 100 * self.music_master_volume, 3) return round(self.master_volume / 100 * self.music_master_volume, 3)