Ejemplo n.º 1
0
        private TiledTile[] ParseTiles(XmlNodeList nodeList)
        {
            var result = new List <TiledTile>();

            foreach (XmlNode node in nodeList)
            {
                var nodesProperty  = node.SelectNodes("properties/property");
                var nodesAnimation = node.SelectNodes("animation/frame");
                var nodeImage      = node.SelectSingleNode("image");

                var tile = new TiledTile();
                tile.id         = int.Parse(node.Attributes["id"].Value);
                tile.type       = node.Attributes["type"]?.Value;
                tile.terrain    = node.Attributes["terrain"]?.Value.Split(',').AsIntArray();
                tile.properties = ParseProperties(nodesProperty);
                tile.animation  = ParseAnimations(nodesAnimation);

                if (nodeImage != null)
                {
                    var tileImage = new TiledImage();
                    tileImage.width  = int.Parse(nodeImage.Attributes["width"].Value);
                    tileImage.height = int.Parse(nodeImage.Attributes["height"].Value);
                    tileImage.source = nodeImage.Attributes["source"].Value;

                    tile.image = tileImage;
                }

                result.Add(tile);
            }

            return(result.ToArray());
        }
Ejemplo n.º 2
0
        private TiledImage ParseImage(XmlNode node)
        {
            var tiledImage = new TiledImage();

            tiledImage.source = node.Attributes["source"].Value;
            tiledImage.width  = int.Parse(node.Attributes["width"].Value);
            tiledImage.height = int.Parse(node.Attributes["height"].Value);

            return(tiledImage);
        }