private void UpdateState() { KeyboardState currentKState = Keyboard.GetState(); if ((currentKState.IsKeyDown(Keys.Down) && KState.IsKeyUp(Keys.Down)) || (currentKState.IsKeyDown(Keys.S) && KState.IsKeyUp(Keys.S))) { ChangeState(false); } if ((currentKState.IsKeyDown(Keys.Up) && (KState.IsKeyUp(Keys.Up)) || (currentKState.IsKeyDown(Keys.W)) && KState.IsKeyUp(Keys.W))) { ChangeState(true); } if ((currentKState.IsKeyDown(Keys.D) && KState.IsKeyUp(Keys.D)) || (currentKState.IsKeyDown(Keys.Right) && KState.IsKeyUp(Keys.Left)) || (currentKState.IsKeyDown(Keys.Enter) && KState.IsKeyUp(Keys.Enter)) || (currentKState.IsKeyDown(Keys.Space) && KState.IsKeyUp(Keys.Space))) { switch (MState) { case MenuState.NEW_GAME: ScreenManager.Instance.SwitchScreen(ScreenState.Game, LName); break; case MenuState.LOAD_GAME: break; case MenuState.OPTIONS: MState = MenuState.SOUND; MLable = MState.ToString() + " : " + IsSoundOn.ToString(); break; case MenuState.EXIT: ScreenManager.Instance.Exit(); break; case MenuState.SOUND: IsSoundOn = !IsSoundOn; MLable = MState.ToString() + " : " + IsSoundOn.ToString(); break; case MenuState.RESOLUTION: switch (ResolutionCurrent) { case ResolutionState.R1280x720: ResolutionCurrent = ResolutionState.R1600x900; break; case ResolutionState.R1600x900: ResolutionCurrent = ResolutionState.R1920x1080; break; case ResolutionState.R1920x1080: ResolutionCurrent = ResolutionState.R1280x720; break; } MLable = MState.ToString() + " : " + ResolutionCurrent.ToString(); ScreenManager.Instance.Resize(ResolutionCurrent); break; case MenuState.BACK: MState = MenuState.OPTIONS; MLable = MState.ToString(); break; } } KState = currentKState; }
private void ChangeState(bool up) { switch (MState) { case MenuState.NEW_GAME: if (!up) { MState = MenuState.LOAD_GAME; } else { MState = MenuState.EXIT; } break; case MenuState.LOAD_GAME: if (!up) { MState = MenuState.OPTIONS; } else { MState = MenuState.NEW_GAME; } break; case MenuState.OPTIONS: if (!up) { MState = MenuState.EXIT; } else { MState = MenuState.LOAD_GAME; } break; case MenuState.EXIT: if (!up) { MState = MenuState.NEW_GAME; } else { MState = MenuState.OPTIONS; } break; case MenuState.SOUND: if (!up) { MState = MenuState.RESOLUTION; } else { MState = MenuState.BACK; } break; case MenuState.RESOLUTION: if (!up) { MState = MenuState.BACK; } else { MState = MenuState.SOUND; } break; case MenuState.BACK: if (!up) { MState = MenuState.SOUND; } else { MState = MenuState.RESOLUTION; } break; } MLable = MState.ToString(); switch (MState) { case MenuState.SOUND: MLable += " : " + IsSoundOn.ToString(); break; case MenuState.RESOLUTION: MLable += " : " + ResolutionCurrent.ToString(); break; default: break; } }