public override void Update(GameTime gameTime) { switch (gameState) { case GameState.Playing: PlayGame(gameTime); break; case GameState.Paused: SpoolBehaviour(gameTime); break; } KeyboardState keyboardState = Keyboard.GetState(); #if DEBUG //Load a debug level if (keyboardState.IsKeyDown(Keys.F)) { level = levelBuilder.BuildLevel(Game.Content, @"Content\Levels\Level1.xml"); } #endif if (keyboardState.IsKeyDown(Keys.F6)) { levelBuilder.SaveLevel(@"C:\", this.level); } #if DEBUG //Do we want to show the debug timestamps? if(keyboardState.IsKeyUp(Keys.F4)) { IsDebugModeKeyDown = false; } if(keyboardState.IsKeyDown(Keys.F4) && IsDebugModeKeyDown ==false) { this.drawTimeStamps = (drawTimeStamps == false) ? true : false; IsDebugModeKeyDown = true; } #endif if (keyboardState.IsKeyDown(Keys.Space) && Spacepressed == false) { if (this.gameState == GameState.Playing) { gameState = GameState.Paused; OnPauseEvent(this, new PausEventArgs(gameTime.TotalGameTime.TotalMilliseconds)); } else { gameState = GameState.Playing; OnResumeEvent(this, new PausEventArgs(gameTime.TotalGameTime.TotalMilliseconds)); } Spacepressed = true; } else if (keyboardState.IsKeyUp(Keys.Space)) { Spacepressed = false; } if (buffer >= 100) { if (keyboardState.IsKeyDown(Keys.Enter)) { SwapMe = true; buffer = 0; } } buffer += gameTime.ElapsedGameTime.Milliseconds; if(keyboardState.IsKeyDown(Keys.Up)) { camera.Zoom -= 0.1f; } if(keyboardState.IsKeyDown(Keys.Down)) { camera.Zoom += 0.1f; } camera.Update(); base.Update(gameTime); }
/// <summary> /// Starts loading a level from an xml into the level object /// </summary> /// <param name="path">the path to the xml</param> private void LoadFromFile(string path) { //Load from an XML file XmlDocument document = new XmlDocument(); level = new Level(); //Load the xml information into the current document document.Load(@path); XmlElement root = document.DocumentElement; ReadNodes(root); }
public override void LoadContent() { level = levelBuilder.BuildLevel(Game.Content, @"Content\Levels\Level1.xml"); gameStateManager.Level = level; font = Game.Content.Load<SpriteFont>(@"Fonts\TimeStampfont"); Player = (Player)gameStateManager.CreateMovableObject("player", @"Graphics\shortMario", level.SpawnPosition, 1, 10, 10); //greenTurtle = (GreenTurtle)gameStateManager.CreateMovableObject("greenturtle", @"Graphics\defaultEnemy", level.SpawnPosition, 3, 3, new Point(0, 500)); timeStampTexture = Game.Content.Load<Texture2D>(@"Graphics\TimeStamp"); camera = new Camera(); camera = new Camera(0.5f, Vector2.Zero, 0.0f, true); }
/// <summary> /// Saves the level, given as a parameter, to a xml file /// </summary> /// <param name="pathToLevel">The path where the level needs to be saved to</param> /// <param name="level">the level that needs to be saved</param> public void SaveLevel(string pathToLevel, Level level) { //Read from an XML file this.level = level; XmlDocument document = new XmlDocument(); //Create a new document document.CreateXmlDeclaration("1.0", "utf-8", "yes"); //Create the root element XmlElement root = document.CreateElement("Level"); //Save SpawnPosition XmlNode spawnPosition = WriteVector2(document, "SpawnPosition", level.SpawnPosition); root.AppendChild(spawnPosition); //Set LevelDefinitions XmlNode levelDefinition = WriteLevelDefinition(document); root.AppendChild(levelDefinition); root.AppendChild(WriteBackground(level.background, document)); //Go through the level and save its elements to the root WriteNodes(root, document); //Add the root to the document document.AppendChild(root); //Save the document document.Save(@pathToLevel + "\\" + level.Name +".xml"); }