layer.py 1.9KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. # coding: utf-8
  2. import cocos
  3. from synergine2.config import Config
  4. from synergine2.log import SynergineLogger
  5. from synergine2_cocos2d.middleware import MapMiddleware
  6. class LayerManager(object):
  7. def __init__(
  8. self,
  9. config: Config,
  10. logger: SynergineLogger,
  11. middleware: MapMiddleware,
  12. ) -> None:
  13. self.config = config
  14. self.logger = logger
  15. self.middleware = middleware
  16. self.main_scene = None # type: cocos.scene.Scene
  17. self.main_layer = None # type: cocos.layer.Layer
  18. self.background_sprite = None # type: cocos.sprite.Sprite
  19. self.ground_layer = None # type: cocos.tiles.RectMapLayer
  20. self.subject_layer = None # type: cocos.layer.Layer
  21. self.top_layer = None # type: cocos.tiles.RectMapLayer
  22. def init(self) -> None:
  23. from synergine2_cocos2d.gui import MainLayer
  24. self.middleware.init()
  25. self.main_layer = MainLayer()
  26. self.main_scene = cocos.scene.Scene(self.main_layer)
  27. self.background_sprite = self.middleware.get_background_sprite()
  28. self.ground_layer = self.middleware.get_ground_layer()
  29. self.subject_layer = cocos.layer.Layer()
  30. self.top_layer = self.middleware.get_top_layer()
  31. self.main_layer.add(self.background_sprite)
  32. self.main_layer.add(self.ground_layer)
  33. self.main_layer.add(self.subject_layer)
  34. self.main_layer.add(self.top_layer)
  35. def center(self):
  36. self.background_sprite.set_position(
  37. 0 + (self.background_sprite.width / 2),
  38. 0 + (self.background_sprite.height / 2),
  39. )
  40. self.ground_layer.set_view(0, 0, self.ground_layer.px_width, self.ground_layer.px_height)
  41. self.subject_layer.position = 0, 0
  42. self.top_layer.set_view(0, 0, self.top_layer.px_width, self.top_layer.px_height)
  43. self.main_scene.position = - self.ground_layer.px_width / 2, - self.ground_layer.px_height / 2