Source

pygamegsoc12 / alchemymadness / blocks.py

Full commit
illume 4da263d 







Szymon Wróblewsk… 2661df1 


























illume 4da263d 

Szymon Wróblewsk… 2661df1 
illume 4da263d 




Szymon Wróblewsk… 2661df1 
illume 4da263d 

illume ff0a36c 
illume 4da263d 


Szymon Wróblewsk… 2661df1 
illume 4da263d 



















illume b6a1270 


illume 4da263d 



illume ff0a36c 

illume 4da263d 

"""Mixing potion"""

import pygame
from pygame.locals import Rect
from pygame.sprite import DirtySprite

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



class Grid(object):
    """
    """
    GRID_SIZE = 10

    def __init__(self):
        super(Grid, self).__init__()
        self.restart()

    def restart(self):
        self.init_grid()

    def init_grid(self):
        # init our 10x10 grid, to show the color of each grid part.
        #[[(0,0,0), ...],
        # ...
        #]
        self.grid = []
        for x in range(self.GRID_SIZE):
            self.grid.append([(0,0,0)] * self.GRID_SIZE)

        import pprint
        pprint.pprint(self.grid)