Bastien Sevajol 6 lat temu
rodzic
commit
b75138f847
1 zmienionych plików z 29 dodań i 2 usunięć
  1. 29 2
      synergine2_cocos2d/layer.py

+ 29 - 2
synergine2_cocos2d/layer.py Wyświetl plik

@@ -1,4 +1,6 @@
1 1
 # coding: utf-8
2
+import typing
3
+
2 4
 import cocos
3 5
 
4 6
 from synergine2.config import Config
@@ -22,7 +24,7 @@ class LayerManager(object):
22 24
 
23 25
         self.background_sprite = None  # type: cocos.sprite.Sprite
24 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 28
         self.top_layer = None  # type: cocos.tiles.RectMapLayer
27 29
 
28 30
     def init(self) -> None:
@@ -34,7 +36,7 @@ class LayerManager(object):
34 36
 
35 37
         self.background_sprite = self.middleware.get_background_sprite()
36 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 40
         self.top_layer = self.middleware.get_top_layer()
39 41
 
40 42
         self.main_layer.add(self.background_sprite)
@@ -42,6 +44,31 @@ class LayerManager(object):
42 44
         self.main_layer.add(self.subject_layer)
43 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 72
     def center(self):
46 73
         self.background_sprite.set_position(
47 74
             0 + (self.background_sprite.width / 2),