|
@@ -16,15 +16,36 @@ cell_scale = ScaleBy(1.1, duration=0.25)
|
16
|
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
|
38
|
class Cells(Layer):
|
20
|
39
|
def __init__(self):
|
21
|
40
|
super().__init__()
|
22
|
41
|
self.cells = {}
|
|
42
|
+ self.grid_manager = GridManager(32, border=2)
|
23
|
43
|
|
24
|
44
|
def born(self, grid_position):
|
25
|
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
|
49
|
cell.do(Repeat(cell_scale + Reverse(cell_scale)))
|
29
|
50
|
cell.do(Repeat(cell_rotate + Reverse(cell_rotate)))
|
30
|
51
|
self.cells[grid_position] = cell
|