Commits

illume committed 3f370bf

showing one Grid and one Blocks

  • Participants
  • Parent commits a9b52f1

Comments (0)

Files changed (2)

File alchemymadness/blocks.py

 GRID_SIZE_W = 9
 GRID_SIZE_H = 16
 
+BLOCK_W = 30
+BLOCK_H = 30
+
 class Block(DirtySprite):
     rect = Rect(0, 0, 30, 30)
     changed = False
         self._color = value
         self.changed = True
 
+
+    def grid_pos(self, pos, grid_rect):
+        """ set the rect for the given (x,y) grid pos
+        """
+        gx, gy = pos
+        x, y = gx * BLOCK_W, gy * BLOCK_H
+        x += grid_rect[0]
+        y += grid_rect[1]
+        self.rect = pygame.Rect(x, y, BLOCK_W, BLOCK_H)
+        self.changed = True
+        self.dirty = 1
+
+
+
 class Blocks(object):
     """ contains 3 Block() instances.
     """
-    def __init__(self):
+    def __init__(self, parent):
         super(Blocks, self).__init__()
 
+        self.parent = parent
         self.colors = [(255,0,0), (0,255,0), (0,0,255)]
 
         # how do we handle location, and rotation? We say where the grid it is on.
         #     top, left is (0,0)
         self.grid_positions = [[0,0], [1,0], [2,0]]
 
+        self.blocks = [Block(c) for c in self.colors]
+        self.on_moved()
+
+    def on_moved(self):
+        for b, pos in zip(self.blocks, self.grid_positions):
+            b.grid_pos(pos, self.parent.rect)
+
 
     def update(self, time):
         pass
                 b[1] = 0
 
     def action_move_down(self):
-
         for b in self.grid_positions:
             b[1] += 1
-
             if b[1] >= GRID_SIZE_H:
                 b[1] = GRID_SIZE_H - 1
 
         self.GRID_SIZE_W = GRID_SIZE_W
         self.GRID_SIZE_H = GRID_SIZE_H
 
+        self.rect = pygame.Rect(100, 100, 300, 300)
+
         self.restart()
     def restart(self):
         self.init_grid()
+        self.blocks = Blocks(self)
+
 
     def init_grid(self):
         # init our 10x10 grid, to show the color of each grid part.

File alchemymadness/main.py

     # Initialise level
     pot = potion.Potion()
     pot.set_formula(3, 5, 3)
-    bl = blocks.Block((255,0,0))
-    sprites = pygame.sprite.LayeredDirty(pot, bl)
+    grd = blocks.Grid()
+    blks = blocks.Blocks(grd)
+    sprites = pygame.sprite.LayeredDirty(pot)
+    for b in blks.blocks:
+        sprites.add(b)
 
     #TEST
     pot.add_color((0,0,255))