public void Update(GameTime gameTime, Game1 game1, MouseState mouseState, KeyboardState keyboardState) { if (gameTime.TotalGameTime.TotalMilliseconds >= LoadingTime - 500) { if (counter < TimeSpan.FromMilliseconds(1000)) { counter += gameTime.ElapsedGameTime; } if (counter > TimeSpan.FromMilliseconds(1000)) { if (isAdding) { PressAlpha += (int)gameTime.ElapsedGameTime.TotalMilliseconds / 2; } else { PressAlpha -= (int)gameTime.ElapsedGameTime.TotalMilliseconds / 2; } if (PressAlpha > 255 | PressAlpha < 0) { if (!isAdding) { counter = TimeSpan.Zero; } isAdding = !isAdding; } } } if (gameTime.TotalGameTime.TotalMilliseconds < LoadingTime) { loading.Update(gameTime, game1); } if (!(timePressed.TotalMilliseconds < DummyTimeSpan.TotalMilliseconds) && gameTime.TotalGameTime.TotalMilliseconds >= LoadingTime + TimeBeforeUserCanContinue && (keyboardState.GetPressedKeys().Length > 0 || mouseState.LeftButton == ButtonState.Pressed)) { timePressed = gameTime.TotalGameTime; Game1.PlaySound("back"); } if (gameTime.TotalGameTime.TotalMilliseconds - timePressed.TotalMilliseconds >= TimeToWaitAfterPressed) { isGoingToMenu = true; } if (isGoingToMenu) { logoAnimation += gameTime.ElapsedGameTime; if (logoAnimation.TotalMilliseconds >= timeBeforeMoving + logoMoveTime + timeAfterAnimation) { game1.ChangeGameState(GameState.Menu); // animation finished } } }
public void Update(GameTime gameTime, Game1 game1, MouseState state, MouseState lState, KeyboardState keystate, KeyboardState lastKeyState) { game1.IsMouseVisible = true; time += gameTime.ElapsedGameTime; soundTime += gameTime.ElapsedGameTime; backGroundAlphaAnimation.Update(gameTime.ElapsedGameTime); int lastSelected = selected; #region input if (UsedKeys["down"].isPressed() && time.TotalMilliseconds >= 200) { selected++; if (selected > 5) { if (time.TotalMilliseconds >= 300) { selected = 1; time = TimeSpan.Zero; } else { selected = 5; } } else { time = TimeSpan.Zero; } } else if (UsedKeys["up"].isPressed() && time.TotalMilliseconds >= 200) { selected--; if (selected < 1) { if (time.TotalMilliseconds >= 300) { selected = 5; time = TimeSpan.Zero; } else { selected = 1; } } else { time = TimeSpan.Zero; } } for (int i = 0; i < TextPositions.Length; i++) { if (Game1.isHover(state, TextPositions[i])) { if (state.X != lState.X || state.Y != lState.Y) { selected = i + 1; time = TimeSpan.Zero; } if (UsedKeys["mouse"].isPressed()) { Game1.PlaySound("click"); switch (selected) { case 1: if (!isMainMenu) { Game1.PlaySound("back"); game1.ChangeGameState(GameState.Playing); } else { if (!isFirstTime) { game1.RestartGame(); isFirstTime = false; } game1.ChangeGameState(GameState.Loading); } //backGroundMusic.Stop(); break; case 4: if (!isMainMenu) { game1.ChangeGameState(GameState.Menu); } break; case 5: game1.ExitGame(); break; } } } } if (UsedKeys["enter"].isPressed()) { if (!(selected == 1 && !isMainMenu)) { Game1.PlaySound("click"); } switch (selected) { case 1: if (!isMainMenu) { Game1.PlaySound("back"); game1.ChangeGameState(GameState.Playing); } else { if (!isFirstTime) { game1.RestartGame(); isFirstTime = false; } game1.ChangeGameState(GameState.Loading); } //backGroundMusic.Stop(); break; case 4: if (!isMainMenu) { game1.ChangeGameState(GameState.Menu); } break; case 5: game1.ExitGame(); break; } } #endregion if (soundTime.TotalMilliseconds >= 20) { if (lastSelected != selected) { Game1.PlaySound("button"); soundTime = TimeSpan.Zero; } } if (!isMainMenu) { if (UsedKeys["escape"].isPressed()) { Game1.PlaySound("back"); game1.ChangeGameState(GameState.Playing); } } foreach (KeyValuePair <string, Key> key in UsedKeys) { if (key.Key != "mouse") { key.Value.Update(keystate, lastKeyState); } else { key.Value.Update(state, lState); } } }