Ajout d'une fenetre et du handling des in/out
This commit is contained in:
parent
6e60e67965
commit
e020fd2b4c
|
@ -1,6 +1,31 @@
|
||||||
|
from src.event_handler import EventHandler
|
||||||
|
from src.renderer import Renderer
|
||||||
|
import pygame
|
||||||
|
|
||||||
|
|
||||||
class Engine:
|
class Engine:
|
||||||
|
"""Classe principale qui regroupe tous les composants du programme (Renderer, MapManager, EventHandler, etc ...)"""
|
||||||
def __init__(self):
|
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):
|
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 = Engine()
|
||||||
engine.loop()
|
engine.loop()
|
||||||
|
|
|
@ -1,6 +1,13 @@
|
||||||
class Renderer:
|
from pygame import display
|
||||||
def __init__(self):
|
|
||||||
pass
|
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