layer.py 2.0KB

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