Added zoom control from settings_manager (debug mode still works)
This commit is contained in:
parent
988500af43
commit
0502f1d278
|
@ -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] *
|
||||||
|
|
|
@ -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()
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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))
|
||||||
|
|
|
@ -7,6 +7,8 @@ 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)
|
||||||
|
|
Loading…
Reference in a new issue