Vérification de l'état du jeu dans le renderer

This commit is contained in:
Yannis 2023-12-26 14:23:02 +01:00
parent 69d63d7b4a
commit b9116b3c75

View file

@ -5,6 +5,7 @@ from pygame.locals import RESIZABLE
import src.engine as engine import src.engine as engine
from src.animation import Anim from src.animation import Anim
from src.enums import GameState
class Renderer: class Renderer:
@ -33,24 +34,27 @@ class Renderer:
"""Fait le rendu du jeu.""" """Fait le rendu du jeu."""
self.window.fill((255, 255, 255)) self.window.fill((255, 255, 255))
# On crée une surface temporaire qui nous permettra de faire le rendu à l'échelle 1:1 if self.engine.game_state == GameState.NORMAL:
rendered_surface_size = (display.get_window_size()[0] / self.engine.camera.zoom, # On crée une surface temporaire qui nous permettra de faire le rendu à l'échelle 1:1
display.get_window_size()[1] / self.engine.camera.zoom) rendered_surface_size = (display.get_window_size()[0] / self.engine.camera.zoom,
rendered_surface = surface.Surface(rendered_surface_size) display.get_window_size()[1] / self.engine.camera.zoom)
rendered_surface = surface.Surface(rendered_surface_size)
self.renderer_layer(0, rendered_surface) self.renderer_layer(0, rendered_surface)
self.render_entities(rendered_surface) self.render_entities(rendered_surface)
self.renderer_layer(1, rendered_surface) self.renderer_layer(1, rendered_surface)
self.renderer_layer(2, rendered_surface) self.renderer_layer(2, rendered_surface)
# Enfin, on redimensionne notre surface et on la colle sur la fenêtre principale # Enfin, on redimensionne notre surface et on la colle sur la fenêtre principale
self.window.blit( self.window.blit(
transform.scale(rendered_surface, (math.ceil(rendered_surface_size[0] * self.engine.camera.zoom), transform.scale(rendered_surface, (math.ceil(rendered_surface_size[0] * self.engine.camera.zoom),
math.ceil(rendered_surface_size[1] * self.engine.camera.zoom))), math.ceil(rendered_surface_size[1] * self.engine.camera.zoom))),
(0, 0)) (0, 0))
# Apres avoir tout rendu, on met à jour l'écran # Apres avoir tout rendu, on met à jour l'écran
display.update() display.update()
elif self.engine.game_state == GameState.BOSS_FIGHT:
self.window.fill((255, 0, 0))
def register_animation(self, animation: Anim, name: str): def register_animation(self, animation: Anim, name: str):
"""Enregistre une animation.""" """Enregistre une animation."""