Added .pause() and .resume() functions (Pause the game logic (Entites moving and damage) and lock player (Player movements doesn't seems to be affected by the pause of the update loop))
This commit is contained in:
parent
afb2e2386f
commit
83d51f3e5e
|
@ -8,6 +8,7 @@ class EntityManager:
|
|||
self.entities: dict[str:Entity] = {}
|
||||
self.player_entity_name = ""
|
||||
self.map_manager = map_manager
|
||||
self.paused = False
|
||||
|
||||
def register_entity(self, name: str) -> Entity:
|
||||
"""Crée une entité et l'enregistre dans un dictionnaire."""
|
||||
|
@ -26,6 +27,7 @@ class EntityManager:
|
|||
|
||||
def update(self, delta: float):
|
||||
"""Met à jour toutes les entités enregistrées."""
|
||||
if not self.paused:
|
||||
for entity_name in list(self.entities.keys()):
|
||||
entity = self.entities[entity_name]
|
||||
entity.update(delta)
|
||||
|
@ -49,3 +51,16 @@ class EntityManager:
|
|||
def get_by_name(self, name: str) -> Entity:
|
||||
"""Donne l'entité avec le nom donné."""
|
||||
return self.entities[name]
|
||||
|
||||
def pause(self):
|
||||
self.paused = True
|
||||
player: Entity = self.get_by_name(self.player_entity_name)
|
||||
if not player.locked:
|
||||
player.lock()
|
||||
|
||||
|
||||
def resume(self):
|
||||
self.paused = False
|
||||
player: Entity = self.get_by_name(self.player_entity_name)
|
||||
if player.locked:
|
||||
player.unlock()
|
Loading…
Reference in a new issue