class Map(object): """ Class for storing tile layers """ def __init__(self, mapData): self.layers = [] self.offset = { 'x': 0, 'y': 0 } if mapData: self.load_map_data(mapData) self.camera = Camera( (0,0), (self.mapSize['x'], self.mapSize['y']), 10) def load_map_data(self, mapData): try: tree = ET.parse(os.path.join(MAPDATA_PATH, mapData)) except: raise 'Could not open map data file.' data = tree.getroot() self.tileSize = { 'x': int(data.attrib['tilewidth']), 'y': int(data.attrib['tileheight']) } self.mapSize = { 'x': int(data.attrib['width']) * self.tileSize['x'], 'y': int(data.attrib['height']) * self.tileSize['y'] } self.tileset = Tileset(data.find('tileset')) for prop in data.iter('property'): if prop.attrib['name'] == 'name': self.name = prop.attrib['value'] for layer in data.findall('layer'): self.layers.append(Layer(layer, self.tileset)) def update(self, events): self.camera.update(events) for layer in self.layers: layer.update(events, self.camera) def draw(self, surface): for layer in self.layers: layer.draw(surface)