} // LoadContent protected override void Update(GameTime gameTime) { keyboardstate = Keyboard.GetState(); mousestate = Mouse.GetState(); // Allows the game to exit if (keyboardstate.IsKeyDown(Keys.Escape)) { this.Exit(); } if (keyboardstate.IsKeyDown(Keys.F5) && lastkeystate.IsKeyUp(Keys.F5)) { graphics.ToggleFullScreen(); graphics.ApplyChanges(); } if (!mainThemePlaying && !nyancat.IsMoving()) { mainTheme = soundbank.GetCue("mainTheme"); mainTheme.Play(); mainThemePlaying = true; } if (nyancat.IsMoving()) { mainTheme.Stop(AudioStopOptions.AsAuthored); mainThemePlaying = false; } switch (gameState) { case GameState.Menu: menu.MoveOfforOnScreen(true); bow.update(gameTime, Content); HandleCollisions(); nyancat.update(gameTime, soundbank); break; case GameState.Target: archeryTarget.update(); menu.MoveOfforOnScreen(false); bow.update(gameTime, Content); HandleCollisions(); nyancat.update(gameTime, soundbank); break; case GameState.Bear: menu.MoveOfforOnScreen(false); bearMode.update(gameTime, Content); bow.update(gameTime, Content); HandleCollisions(); nyancat.update(gameTime, soundbank); break; case GameState.GameOver: if (firstGameOverpass) { if (LoginForm.IsNewHighScore(username, bearMode.bearsKilled)) { LoginForm.UpdateHighScore(username, bearMode.bearsKilled); isHighScore = true; } firstGameOverpass = false; } if ((mousestate.LeftButton == ButtonState.Pressed) && (mousestate.X < 100 && mousestate.Y < 10)) { firstGameOverpass = true; isHighScore = false; bearMode.reset(); gameState = GameState.Menu; bow.resetArrows(Content); } break; case GameState.Login: loginForm.Update(gameTime.ElapsedGameTime.Ticks); LoggedIn = loginForm.Is_Logged_In(); if (loginForm.IsDone()) { LoggedIn = loginForm.Is_Logged_In(); if (LoggedIn) { username = loginForm.GetUsername(); } gameState = GameState.Menu; loginForm = new LoginForm(Content); } break; } lastkeystate = keyboardstate; base.Update(gameTime); } // Update