Bastien Sevajol 7 years ago
parent
commit
b75138f847
1 changed files with 29 additions and 2 deletions
  1. 29 2
      synergine2_cocos2d/layer.py

+ 29 - 2
synergine2_cocos2d/layer.py View File

1
 # coding: utf-8
1
 # coding: utf-8
2
+import typing
3
+
2
 import cocos
4
 import cocos
3
 
5
 
4
 from synergine2.config import Config
6
 from synergine2.config import Config
22
 
24
 
23
         self.background_sprite = None  # type: cocos.sprite.Sprite
25
         self.background_sprite = None  # type: cocos.sprite.Sprite
24
         self.ground_layer = None  # type: cocos.tiles.RectMapLayer
26
         self.ground_layer = None  # type: cocos.tiles.RectMapLayer
25
-        self.subject_layer = None  # type: cocos.layer.Layer
27
+        self.subject_layer = None  # type: cocos.tiles.RectMapLayer
26
         self.top_layer = None  # type: cocos.tiles.RectMapLayer
28
         self.top_layer = None  # type: cocos.tiles.RectMapLayer
27
 
29
 
28
     def init(self) -> None:
30
     def init(self) -> None:
34
 
36
 
35
         self.background_sprite = self.middleware.get_background_sprite()
37
         self.background_sprite = self.middleware.get_background_sprite()
36
         self.ground_layer = self.middleware.get_ground_layer()
38
         self.ground_layer = self.middleware.get_ground_layer()
37
-        self.subject_layer = cocos.layer.Layer()
39
+        self.subject_layer = self.get_subjects_layer()
38
         self.top_layer = self.middleware.get_top_layer()
40
         self.top_layer = self.middleware.get_top_layer()
39
 
41
 
40
         self.main_layer.add(self.background_sprite)
42
         self.main_layer.add(self.background_sprite)
42
         self.main_layer.add(self.subject_layer)
44
         self.main_layer.add(self.subject_layer)
43
         self.main_layer.add(self.top_layer)
45
         self.main_layer.add(self.top_layer)
44
 
46
 
47
+    def get_subjects_layer(self) -> cocos.tiles.RectMapLayer:
48
+        # TODO: hardcoded values: use TMX infos
49
+        cells = self.generate_subjects_cells(width=70, height=40, tile_width=8, tile_height=8)
50
+        return cocos.tiles.RectMapLayer(
51
+            id='subject',
52
+            tw=8,  # hardcoded values: use TMX infos
53
+            th=8,  # hardcoded values: use TMX infos
54
+            cells=cells,
55
+        )
56
+
57
+    def generate_subjects_cells(
58
+        self,
59
+        width: int,
60
+        height: int,
61
+        tile_width: int,
62
+        tile_height: int,
63
+    ) -> typing.List[typing.List[cocos.tiles.RectCell]]:
64
+        cells = [[None] * height for x in range(width)]  # type: typing.List[typing.List[cocos.tiles.RectCell]]
65
+        for n in range(width * height):
66
+            i = n % width
67
+            j = height - (n // width + 1)
68
+            # TODO: C'est ici que l'on met une tile=XXX avec des subjects
69
+            cells[i][j] = cocos.tiles.RectCell(i, j, tile_width, tile_height, properties={}, tile=None)
70
+        return cells
71
+
45
     def center(self):
72
     def center(self):
46
         self.background_sprite.set_position(
73
         self.background_sprite.set_position(
47
             0 + (self.background_sprite.width / 2),
74
             0 + (self.background_sprite.width / 2),