def fromxml(cls, tag, tilemap, firstgid=None):
if 'source' in tag.attrib:
firstgid = int(tag.attrib['firstgid'])
path = tag.attrib['source']
if not os.path.exists(path):
path = os.path.join(tilemap.file_path, path)
with open(path) as f:
tileset = ElementTree.fromstring(f.read())
return cls.fromxml(tileset, firstgid)
name = tag.attrib['name']
if firstgid is None:
firstgid = int(tag.attrib['firstgid'])
tile_width = int(tag.attrib['tilewidth'])
tile_height = int(tag.attrib['tileheight'])
spacing = int(tag.get('spacing', 0))
margin = int(tag.get('margin', 0))
tileset = cls(name, tile_width, tile_height, firstgid,
spacing, margin)
for c in tag.getchildren():
if c.tag == "image":
# create a tileset
tileset.add_image(tilemap.file_path, c.attrib['source'])
elif c.tag == 'tile':
gid = tileset.firstgid + int(c.attrib['id'])
tileset.get_tile(gid).loadxml(c)
return tileset
评论列表
文章目录