예제 #1
0
        public static PlatformerLevelLoader load(string filename)
        {
            PlatformerLevelLoader current = new PlatformerLevelLoader();

            current.Name = filename.ToUpper();

            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(OldSkullGame.Path + @"Content\Level\"+filename+".oel");
            XmlElement levelMap = xmlDoc["level"];

            current.Left = levelMap.Attr("leftExit");
            current.Right = levelMap.Attr("rightExit");

            current.size = new Vector2(int.Parse(levelMap.Attr("width")), int.Parse(levelMap.Attr("height")));
            current.solids = new List<Solid>();
            current.solidGrid = new Grid(16, 16, levelMap["Solid"].InnerText);

            current.entities = new List<XmlElement>();
            foreach (XmlElement e in levelMap["Objects"])
            {
                current.entities.Add(e);
            }

            current.tilesets = new List<XmlElement>();
            foreach (XmlElement e in levelMap)
            {
                if (e.HasAttr("tileset"))
                {
                    current.tilesets.Add(e);
                }
            }

            return current;
        }
예제 #2
0
        internal virtual void loadLevel(PlatformerLevelLoader ll)
        {
            Name = ll.Name;
            foreach (Solid solid in ll.solids)
            {
                Add(solid);
                Solids.Add(solid);
            }
            foreach (XmlElement e in ll.entities)
            {
                LoadEntity(e);
            }

            foreach (XmlElement e in ll.tilesets)
            {
                LoadTileset(e);
            }

            ConnectionRight = ll.Right;
            ConnectionLeft = ll.Left;
            Add(new SolidGrid(ll.solidGrid));
        }