//public TitleScreen(Model model, float aspectRatio, Texture2D texture) public TitleScreen(titleScreens screen_state) { menu_list = new List <TitleMenuOptions>(3); menu_list.Add(new TitleMenuOptions("START")); menu_list.Add(new TitleMenuOptions("OPTIONS")); menu_list.Add(new TitleMenuOptions("QUIT")); menu_item_selected = 0; screen = screen_state; fade_state = FadeState.fadeIn; storageDevicePrompted = false; InputDevice2.UnlockAllControllers(); }
protected override void doUpdate(GameTime currentTime) { button_pressed_timer += currentTime.ElapsedGameTime.Milliseconds; fade += currentTime.ElapsedGameTime.Milliseconds; if (screen == titleScreens.menuScreen || screen == titleScreens.playScreen) { fade_duration = max_fade_menu_timer; } else { fade_duration = max_fade_timer; } switch (screen) { case titleScreens.introScreen: if (fade > max_fade_timer) { fade = 0.0f; fade_state = (FadeState)(((int)fade_state + 1) % 3); if (fade_state == FadeState.stay) { fade = 0.0f; screen = titleScreens.menuScreen; } } break; /**************************************************************************************************************************/ case titleScreens.logoScreen: if (fade > fade_duration) { fade = 0.0f; fade_state = (FadeState)(((int)fade_state + 1) % 3); if (fade_state == FadeState.fadeIn) { fade = 0.0f; screen = titleScreens.menuScreen; } else if (fade_state == FadeState.stay) { fade = 0.0f; fade_duration = logo_stay_timer; } else if (fade_state == FadeState.fadeOut) { fade = 0.0f; fade_duration = max_fade_timer; } } break; /**************************************************************************************************************************/ case titleScreens.menuScreen: if (!music_playing) { BackGroundAudio.playSong("Menu", true); music_playing = true; } if (Game1.videoPlayer.State == Microsoft.Xna.Framework.Media.MediaState.Stopped) { Game1.videoPlayer.IsLooped = true; Game1.videoPlayer.Play(Game1.titleScreenVideo); } if (fade > max_fade_menu_timer) { fade = 0.0f; fade_state = FadeState.stay; if (fade_state == FadeState.fadeIn) { fade = 0.0f; screen = titleScreens.menuScreen; } } if (storageDevicePrompted) { if (InputDevice2.IsAnyControllerButtonDown(InputDevice2.PlayerButton.DownDirection) != InputDevice2.PlayerPad.NoPad) { if (!down_pressed) { button_pressed_timer = 0.0f; } down_pressed = true; } if ((down_pressed && !(InputDevice2.IsAnyControllerButtonDown(InputDevice2.PlayerButton.DownDirection) != InputDevice2.PlayerPad.NoPad)) || (down_pressed && (InputDevice2.IsAnyControllerButtonDown(InputDevice2.PlayerButton.DownDirection) != InputDevice2.PlayerPad.NoPad) && button_pressed_timer > max_button_pressed_timer)) { down_pressed = false; button_pressed_timer = 0.0f; menu_item_selected++; AudioLib.playSoundEffect(menuBlipSound); if (menu_item_selected >= menu_list.Count()) { menu_item_selected = menu_item_selected % menu_list.Count(); } else if (menu_item_selected < 0) { menu_item_selected += menu_list.Count(); } } if (InputDevice2.IsAnyControllerButtonDown(InputDevice2.PlayerButton.UpDirection) != InputDevice2.PlayerPad.NoPad) { if (!up_pressed) { button_pressed_timer = 0.0f; } up_pressed = true; } if ((up_pressed && !(InputDevice2.IsAnyControllerButtonDown(InputDevice2.PlayerButton.UpDirection) != InputDevice2.PlayerPad.NoPad)) || (up_pressed && (InputDevice2.IsAnyControllerButtonDown(InputDevice2.PlayerButton.UpDirection) != InputDevice2.PlayerPad.NoPad) && button_pressed_timer > max_button_pressed_timer)) { up_pressed = false; button_pressed_timer = 0.0f; menu_item_selected--; AudioLib.playSoundEffect(menuBlipSound); if (menu_item_selected >= menu_list.Count()) { menu_item_selected = menu_item_selected % menu_list.Count(); } else if (menu_item_selected < 0) { menu_item_selected += menu_list.Count(); } } if (InputDevice2.IsAnyControllerButtonDown(InputDevice2.PlayerButton.Confirm) != InputDevice2.PlayerPad.NoPad) { confirm_pressed = true; whoPressedConfirm = InputDevice2.IsAnyControllerButtonDown(InputDevice2.PlayerButton.Confirm); } else if (confirm_pressed) { confirm_pressed = false; switch (menu_list[menu_item_selected].text) { case "START": screen = titleScreens.playScreen; fade_state = FadeState.fadeOut; fade = 0.0f; break; case "OPTIONS": InputDevice2.LockController(InputDevice2.PPG_Player.Player_1, whoPressedConfirm); screen = titleScreens.optionScreen; fade_state = FadeState.fadeOut; fade = 0.0f; break; case "QUIT": Game1.exitGame = true; break; } } for (int i = 0; i < menu_list.Count(); i++) { if (i == menu_item_selected) { menu_list[menu_item_selected].selected = true; } else { menu_list[i].selected = false; } menu_list[i].update(currentTime); } } else { if (InputDevice2.IsAnyControllerButtonDown(InputDevice2.PlayerButton.Confirm) != InputDevice2.PlayerPad.NoPad) { confirm_pressed = true; whoPressedConfirm = InputDevice2.IsAnyControllerButtonDown(InputDevice2.PlayerButton.Confirm); } else if (confirm_pressed) { confirm_pressed = false; SaveGameModule.selectStorageDevice((PlayerIndex)whoPressedConfirm); SaveGameModule.loadGame(); storageDevicePrompted = true; } } break; /*****************************************************************************************************/ default: if (fade > max_fade_menu_timer) { isComplete = true; BackGroundAudio.stopAllSongs(); Game1.videoPlayer.Stop(); } break; } }