Exemple #1
0
 def __init__(self, screen, squareSize=30, mapSize=20, drawerParams={}):
     self.screen = screen
     self.players = [
         Player(Objects.Player2, 0, 0),
         Player(Objects.Player1, mapSize - 1, mapSize - 1)
     ]
     self.map = MapModel(mapSize, self.players[0], self.players[1])
     self.players[0].setMap(self.map)
     self.players[1].setMap(self.map)
     self.drawer = MapDrawer(self.map, screen, squareSize, mapSize,
                             **drawerParams)
Exemple #2
0
        """Adjusts the row and column to map to coordinates on screen"""
        dw = 0 if w is None else self.tileSize - w
        dh = 0 if h is None else self.tileSize - h
        return (row * self.tileSize + self.start_x + dw / 2,
                col * self.tileSize + self.start_y + dh / 2)

    def redraw(self, update=True):
        """ Redraws the map onto the screen. If update is True, 
            pygame.display.flip() will be called. """
        self.screen.blit(Objects.Background(self.tileSize * self.mapSize),
                         (self.start_x, self.start_y))
        for (row, col), tile in self.model.items():
            icon = tile(self.tileSize)
            w, h = icon.get_size()
            self.screen.blit(icon, self.adjusted(row, col, w, h))
        if update:
            pygame.display.flip()


if __name__ == "__main__":
    import sys
    sys.path.append(".")
    from models.MapModel import MapModel
    n = 20
    model = MapModel(n)
    pygame.init()
    size = 25
    screen = pygame.display.set_mode((size * n, size * n))
    drawer = MapDrawer(model, screen, size)
    drawer.redraw()
    pygame.time.delay(3000)