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