Example #1
0
    def load_default_tiles(self, columns=40, rows=30, sheet=0,
        kinds=(0, 1, 2)):
        self.sheet = sheet
        set_tile_stats(self)
        self.set_areas()
        self.lw = columns * self.tile_width
        self.lh = rows * self.tile_height
        self.tiles = Group()
        self.walls = Group()
        y = 0
        t = 0
        for r in xrange(rows):
            x = 0
            for c in xrange(columns):
                tile = Tile(x, y, sheet, kinds[t % len(kinds)], self)
                self.tiles.add(tile)
                if tile.kind in self.wall_kinds:
                    tile.flags |= FLAGS.WALL
                    self.walls.add(tile)
                else:
                    tile.flags |= FLAGS.FLOOR

                x += self.tile_width
                t += 1
            y += self.tile_height
Example #2
0
    def load_tiles(self, filename):
        try:
            self.tiles = Group()
            self.walls = Group()

            level = open(filename, 'r')
            line = level.readline().strip()
            while line != '[tiles]':
                line = level.readline().strip()

            self.sheet = int(level.readline().strip())
            set_tile_stats(self)
            self.set_areas()
            y = -self.tile_height
            line = level.readline().strip()
            while line and line != '[units]':
                x = 0
                y += self.tile_height
                for k in line.split(' '):
                    if not k.strip():
                        continue
                    tile = Tile(x, y, self.sheet, int(k), self)
                    self.tiles.add(tile)
                    if tile.kind in self.wall_kinds:
                        tile.flags |= FLAGS.WALL
                        self.walls.add(tile)
                    else:
                        tile.flags |= FLAGS.FLOOR
                    x += self.tile_width
                line = level.readline().strip()
            self.lw = x
            self.lh = y + self.tile_height
            level.close()
        except IOError:
            return self.load_default_tiles()
Example #3
0
 def __init__(self, x, y, sheet, kind, mgr):
     super(Tile, self).__init__(x, y, kind)
     self.mgr = mgr
     self.resourcemgr = mgr.resourcemgr
     self.sheet = sheet
     set_tile_stats(self)
     self.rect = Rect(x, y, self.tile_width, self.tile_height)
     self.area = self.mgr.areas[self.kind]
     self.flags = FLAGS.TILE