|
@@ -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),
|