Implementation de la base de l'engine #3
|
@ -1,6 +1,31 @@
|
|||
from src.event_handler import EventHandler
|
||||
from src.renderer import Renderer
|
||||
import pygame
|
||||
|
||||
|
||||
class Engine:
|
||||
"""Classe principale qui regroupe tous les composants du programme (Renderer, MapManager, EventHandler, etc ...)"""
|
||||
def __init__(self):
|
||||
pass
|
||||
# L'initialisation de Pygame est nécéssaire pour tous les modules
|
||||
pygame.init()
|
||||
self.running = False
|
||||
self.renderer = Renderer(self)
|
||||
self.event_handler = EventHandler(self)
|
||||
|
||||
def loop(self):
|
||||
pass
|
||||
"""Fonction à lancer au début du programme et qui va lancer les updates dans une boucle.
|
||||
Attend jusqu'à la fin du jeu."""
|
||||
self.running = True
|
||||
while self.running:
|
||||
self.update()
|
||||
|
||||
def update(self):
|
||||
"""Fonction qui regroupe toutes les updates des composants. Elle permet de mettre à jour le jeu quand on
|
||||
l'appelle."""
|
||||
self.renderer.update()
|
||||
self.event_handler.update()
|
||||
|
||||
def stop(self):
|
||||
"""Arrete le programme."""
|
||||
self.running = False
|
||||
pygame.quit()
|
||||
|
|
16
src/event_handler.py
Normal file
16
src/event_handler.py
Normal file
|
@ -0,0 +1,16 @@
|
|||
from pygame import event
|
||||
from pygame.locals import QUIT
|
||||
|
||||
import src.engine as engine
|
||||
|
||||
|
||||
class EventHandler:
|
||||
"""Classe utilisée pour traiter les pygame.event.get() et gérer les interactions avec le reste du programme."""
|
||||
def __init__(self, core: 'engine.Engine'):
|
||||
self.engine = core
|
||||
|
||||
def update(self):
|
||||
"""Vérifie s'il y a de nouvelles interactions et les traites."""
|
||||
for e in event.get():
|
||||
if e.type == QUIT:
|
||||
self.engine.stop()
|
|
@ -1,4 +1,4 @@
|
|||
from engine import Engine
|
||||
from src.engine import Engine
|
||||
|
||||
engine = Engine()
|
||||
engine.loop()
|
||||
|
|
|
@ -1,6 +1,13 @@
|
|||
class Renderer:
|
||||
def __init__(self):
|
||||
pass
|
||||
from pygame import display
|
||||
|
||||
import src.engine as engine
|
||||
|
||||
class Renderer:
|
||||
"""Classe contenant le moteur de rendu. On utilise, pour cela la bibliothèque Pygame."""
|
||||
def __init__(self, core: 'engine.Engine'):
|
||||
self.engine = core
|
||||
self.window = display.set_mode((600, 600))
|
||||
|
||||
def update(self):
|
||||
"""Fait le rendu du jeu."""
|
||||
|
||||
def loop(self):
|
||||
pass
|
||||
|
|
Loading…
Reference in a new issue