Browse Source

lifegame cocos: manager grip positionning

Bastien Sevajol 8 years ago
parent
commit
5c9b00c9e4
1 changed files with 23 additions and 2 deletions
  1. 23 2
      sandbox/life_game/gui.py

+ 23 - 2
sandbox/life_game/gui.py View File

16
 cell_rotate = RotateBy(360, duration=30)
16
 cell_rotate = RotateBy(360, duration=30)
17
 
17
 
18
 
18
 
19
+class GridManager(object):
20
+    def __init__(self, square_width: int, border: int=0):
21
+        self.square_width = square_width
22
+        self.border = border
23
+
24
+    @property
25
+    def final_width(self):
26
+        return self.square_width + self.border
27
+
28
+    def scale_sprite(self, sprite: Sprite):
29
+        sprite.scale_x = self.final_width / sprite.image.width
30
+        sprite.scale_y = self.final_width / sprite.image.height
31
+
32
+    def position_sprite(self, sprite: Sprite, grid_position):
33
+        grid_x = grid_position[0]
34
+        grid_y = grid_position[1]
35
+        sprite.position = grid_x * self.final_width, grid_y * self.final_width
36
+
37
+
19
 class Cells(Layer):
38
 class Cells(Layer):
20
     def __init__(self):
39
     def __init__(self):
21
         super().__init__()
40
         super().__init__()
22
         self.cells = {}
41
         self.cells = {}
42
+        self.grid_manager = GridManager(32, border=2)
23
 
43
 
24
     def born(self, grid_position):
44
     def born(self, grid_position):
25
         cell = Sprite('resources/cells_l.png')
45
         cell = Sprite('resources/cells_l.png')
26
-        cell.position = grid_position[0] * 30, grid_position[1] * 30
27
-        cell.scale = 0.50
46
+        cell.rotation = randint(0, 360)
47
+        self.grid_manager.scale_sprite(cell)
48
+        self.grid_manager.position_sprite(cell, grid_position)
28
         cell.do(Repeat(cell_scale + Reverse(cell_scale)))
49
         cell.do(Repeat(cell_scale + Reverse(cell_scale)))
29
         cell.do(Repeat(cell_rotate + Reverse(cell_rotate)))
50
         cell.do(Repeat(cell_rotate + Reverse(cell_rotate)))
30
         self.cells[grid_position] = cell
51
         self.cells[grid_position] = cell