Source

pygamegsoc12 / alchemymadness / blocks.py

Diff from to

File alchemymadness/blocks.py

 
 import resources
 
+class Block(DirtySprite):
+    rect = Rect(0, 0, 30, 30)
+    changed = False
+
+    def __init__(self, color, *groups):
+        super(Block, self).__init__(*groups)
+
+        self._image = pygame.Surface(self.rect.size) # Sprite image
+        self._color = color  # Block color
+        self.changed = True
+        self.dirty = 1
+
+    @property
+    def image(self):
+        if self.changed:
+            self._image = resources.block.copy()
+            self._image.fill(self._color, special_flags=pygame.locals.BLEND_RGBA_MULT)
+        return self._image
+
+    @property
+    def color(self):
+        return self._color
+
+    @color.setter
+    def color(self, value):
+        self._color = value
+        self.changed = True
 
 class Blocks(DirtySprite):
-    
+
     def __init__(self, *groups):
         super(Blocks, self).__init__(*groups)
 
 
         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]]
 
         # what is our image?
         self.dirty = 1
-    
+
 
     def update(self, time):
         pass