pygame_framework/game_manager.py

50 lines
1.2 KiB
Python

import datetime
from game_object import GameObject
class GameManager:
_game_objects = list()
def __init__(self, screen):
self._last_update = None
self._screen = screen
self._pause = False
@property
def pause(self):
return self._pause
@pause.setter
def pause(self, pause: bool):
self._pause = pause
def update(self):
if not self._pause:
now = datetime.datetime.now()
self.__call_update(now - self._last_update)
self.__call_draw()
self._last_update = now
def __call_update(self, deltatime):
for go in GameManager._game_objects:
go.update(deltatime)
def __call_draw(self):
for go in GameManager._game_objects:
go.draw()
@classmethod
def register_game_object(cls, go: GameObject) -> bool:
if go not in cls._game_objects:
cls._game_objects.append(go)
return True
return False
@classmethod
def unregister_game_object(cls, go: GameObject) -> bool:
if go in cls._game_objects:
cls._game_objects.remove(go)
return True
return False