//Use a method to call the other Updates in the other classes public void Update(GameTime gametime) { player.Update(gametime); Camera.Update(gametime); }
/// <summary> /// Allows the game to run logic such as updating the world, /// checking for collisions, gathering input, and playing audio. /// </summary> /// <param name="gameTime">Provides a snapshot of timing values.</param> protected override void Update(GameTime gameTime) { KeyboardState keyboard = Keyboard.GetState(); // Allows the game to exit if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || (keyboard.IsKeyDown(Keys.Escape))) { this.Exit(); } if (Player.m_lifes == 0) { gameOver = true; } if (!GameValues.Instance.gamePaused) { Player.Reset(); if (Player.m_active) { if (keyboard.IsKeyDown(Keys.P)) { if (!GameValues.Instance.gamePaused) { GameValues.Instance.gamePaused = true; } else { GameValues.Instance.gamePaused = false; } } if ((keyboard.IsKeyDown(Keys.Up)) || (keyboard.IsKeyDown(Keys.W))) { Player.m_up = true; } if ((keyboard.IsKeyDown(Keys.Down)) || (keyboard.IsKeyDown(Keys.S))) { Player.m_down = true; } if ((keyboard.IsKeyDown(Keys.Left)) || (keyboard.IsKeyDown(Keys.A))) { Player.m_left = true; } if ((keyboard.IsKeyDown(Keys.Right)) || (keyboard.IsKeyDown(Keys.D))) { Player.m_right = true; } if (keyboard.IsKeyDown(Keys.Space) || (keyboard.IsKeyDown(Keys.RightControl))) { Player.Fire(); } } // TODO: Add your update logic here Level.Update(); int i = 0; for (i = 0; i < PlayerWeapons.Count; i++) { if (PlayerWeapons[i].m_active) { PlayerWeapons[i].Update(); } } for (i = 0; i < GameValues.Instance.EnemyWeapons.Count; i++) { if (GameValues.Instance.EnemyWeapons[i].m_active) { GameValues.Instance.EnemyWeapons[i].Update(); } } Player.Update(); starField.Update(); } base.Update(gameTime); }
private void UpdatePlayer(GameTime gameTime) { player.Update(gameTime); // Windows Phone Controls while (TouchPanel.IsGestureAvailable) { GestureSample gesture = TouchPanel.ReadGesture(); if (gesture.GestureType == GestureType.FreeDrag) { player.Position += gesture.Delta; } } // Get Thumbstick Controls player.Position.X += currentGamePadState.ThumbSticks.Left.X * playerMoveSpeed; player.Position.Y -= currentGamePadState.ThumbSticks.Left.Y * playerMoveSpeed; // Use the Keyboard / Dpad if (currentKeyboardState.IsKeyDown(Keys.Left) || currentGamePadState.DPad.Left == ButtonState.Pressed) { player.Position.X -= playerMoveSpeed; } if (currentKeyboardState.IsKeyDown(Keys.Right) || currentGamePadState.DPad.Right == ButtonState.Pressed) { player.Position.X += playerMoveSpeed; } if (currentKeyboardState.IsKeyDown(Keys.Up) || currentGamePadState.DPad.Up == ButtonState.Pressed) { player.Position.Y -= playerMoveSpeed; } if (currentKeyboardState.IsKeyDown(Keys.Down) || currentGamePadState.DPad.Down == ButtonState.Pressed) { player.Position.Y += playerMoveSpeed; } if ((currentGamePadState.Buttons.Start == ButtonState.Pressed) || (currentKeyboardState.IsKeyDown(Keys.F1))) { player.Active = true; } // Make sure that the player does not go out of bounds player.Position.X = MathHelper.Clamp(player.Position.X, 0, GraphicsDevice.Viewport.Width - player.Width); player.Position.Y = MathHelper.Clamp(player.Position.Y, 0, GraphicsDevice.Viewport.Height - player.Height); // Fire only every interval we set as the fireTime if (gameTime.TotalGameTime - previousFireTime > fireTime) { // Reset our current time previousFireTime = gameTime.TotalGameTime; // Add the projectile, but add it to the front and center of the player AddProjectile(player.Position + new Vector2(player.Width / 2, 0)); // Play the laser sound laserSound.Play(); } // reset score if player health goes to zero if (player.Health <= 0) { player.Active = false; player.Health = 100; score = 0; } }