MrGravity.Import_Code.Importer.ImportLevel C# (CSharp) Method

ImportLevel() public method

Goes through the xml file and translates the information
public ImportLevel ( Level level ) : Level
level Level
return Level
        public Level ImportLevel(Level level)
        {
            XElement xLevel;
            #if XBOX360
            xLevel = XElement.Load("Content\\Levels\\" + level.Name + ".xml");
            #else
            xLevel = XElement.Load("..\\..\\..\\Content\\Levels\\" + level.Name + ".xml");
            #endif

            //Gets all the information for a level and places it into the level object
            foreach (var item in xLevel.Elements())
            {
                if (item.Name == XmlKeys.Name)
                    level.Name = item.Value;
                if (item.Name == XmlKeys.Size && !level.IsMainMenu)
                    level.Size = GridSpace.GetDrawingCoord(new Vector2(int.Parse(item.Attribute(XName.Get("X", "")).Value),
                        int.Parse(item.Attribute(XName.Get("Y", "")).Value)));
                if (item.Name == XmlKeys.Background)
                    level.Load(_mContent, item.Value);
                if (item.Name == "Entities")
                    foreach (var element in item.Elements())
                        _mEntities.Add(new EntityInfo(element));
            }

            if(!level.IsMainMenu)
                GetPlayerStart(level);

            return level;
        }

Usage Example

示例#1
0
        /// <summary>
        /// Loads the level from the content manager
        /// </summary>
        /// <param name="content">Content Manager to load from</param>
        public void Load(ContentManager content)
        {
            _mObjects.Clear();
            Reset();

            var importer = new Importer(content);
            importer.ImportLevel(this);

            _mPlayer = new Player(content, ref _mPhysicsEnvironment,
                _mControls, .8f, EntityInfo.CreatePlayerInfo(GridSpace.GetGridCoord(StartingPoint)));

            _mObjects.Add(_mPlayer);
            _mObjects.AddRange(importer.GetObjects(ref _mPhysicsEnvironment));

            _mPlayerEnd = importer.GetPlayerEnd();
            if (_mPlayerEnd != null)
                _mObjects.Add(_mPlayerEnd);

            _mObjects.AddRange(importer.GetWalls(this).Cast<GameObject>());

            _mRails = importer.GetRails();

            _mTrigger.AddRange(importer.GetTriggers());

            PrepareCollisionMatrix();

            MNumCollected = 0;
            MNumCollectable = 0;

            //Clear the collection lists
            _mCollected.Clear();
            _mRemoveCollected.Clear();

            foreach (var gObject in _mObjects)
            {
                if (gObject.CollisionType == XmlKeys.Collectable)
                    MNumCollectable++;
            }
        }