base.py 1.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. # coding: utf-8
  2. from sandbox.tile.simulation.event import NewVisibleOpponent
  3. from sandbox.tile.simulation.event import NoLongerVisibleOpponent
  4. from sandbox.tile.simulation.physics import TilePhysics
  5. from sandbox.tile.simulation.subject import TileSubject as ManSubject
  6. from sandbox.tile.gui.actor import Man as ManActor
  7. from synergine2_cocos2d.terminal import GameTerminal
  8. from synergine2_cocos2d.util import get_map_file_path_from_dir
  9. from synergine2_xyz.move.simulation import FinishMoveEvent
  10. from synergine2_xyz.move.simulation import StartMoveEvent
  11. class CocosTerminal(GameTerminal):
  12. subscribed_events = [
  13. FinishMoveEvent,
  14. StartMoveEvent,
  15. NewVisibleOpponent,
  16. NoLongerVisibleOpponent,
  17. ]
  18. def __init__(self, *args, asynchronous: bool, map_dir_path: str, **kwargs):
  19. super().__init__(*args, **kwargs)
  20. self.asynchronous = asynchronous
  21. map_file_path = get_map_file_path_from_dir(map_dir_path)
  22. self.physics = TilePhysics(
  23. self.config,
  24. map_file_path=map_file_path,
  25. )
  26. self.map_dir_path = map_dir_path
  27. def run(self):
  28. from sandbox.tile.gui.base import Game
  29. from synergine2_cocos2d.gui import SubjectMapper
  30. self.gui = Game(
  31. self.config,
  32. self.logger,
  33. self,
  34. physics=self.physics,
  35. map_dir_path=self.map_dir_path,
  36. )
  37. # TODO: Defind on some other place ?
  38. self.gui.subject_mapper_factory.register_mapper(
  39. ManSubject,
  40. SubjectMapper(ManActor),
  41. )
  42. self.gui.run()