gui.py 847B

123456789101112131415161718192021222324252627282930313233
  1. import cocos
  2. import pyglet
  3. from synergine2.terminals import Terminal
  4. from synergine2.terminals import TerminalPackage
  5. class Gui(object):
  6. def __init__(
  7. self,
  8. terminal: Terminal,
  9. read_queue_interval: float= 1/60.0,
  10. ):
  11. self._read_queue_interval = read_queue_interval
  12. self.terminal = terminal
  13. cocos.director.director.init()
  14. def run(self):
  15. pyglet.clock.schedule_interval(
  16. lambda *_, **__: self.terminal.read(),
  17. self._read_queue_interval,
  18. )
  19. cocos.director.director.run(self.get_main_scene())
  20. def get_main_scene(self) -> cocos.cocosnode.CocosNode:
  21. raise NotImplementedError()
  22. def before_received(self, package: TerminalPackage):
  23. pass
  24. def after_received(self, package: TerminalPackage):
  25. pass