/// <summary>
        /// LoadContent will be called once per game and is the place to load
        /// all of your content.
        /// </summary>
        protected override void LoadContent()
        {
            // Create a new SpriteBatch, which can be used to draw textures.

            InputDevice2.Initalize();

            HighScoresState.InitalizeHighScores();

            //replace this with a join screen later
#if XBOX
            InputDevice2.LockController(InputDevice2.PPG_Player.Player_1, InputDevice2.PlayerPad.GamePad1);
#elif WINDOWS
            InputDevice2.LockController(InputDevice2.PPG_Player.Player_1, InputDevice2.PlayerPad.Keyboard);
#endif

            spriteBatch = new SpriteBatch(GraphicsDevice);

            AnimationLib al = new AnimationLib(GraphicsDevice, spriteBatch);
            AnimationLib.cacheAtlasFiles();

            //some of these assets are critical to render anything to the screen, and thus are not stored in a seperate thread
            saveIcon             = Content.Load <Texture2D>("gfx/saveIcon");
            debugFont            = Content.Load <SpriteFont>("testFont");
            whitePixel           = Content.Load <Texture2D>("whitePixel");
            pleaseWaitDialog     = Content.Load <Texture2D>("pleaseWait");
            asteroidsSpriteSheet = Content.Load <Texture2D>("ppg_asteroids");

            for (int i = 0; i < starCount; i++)
            {
                stars[i]        = new Vector2(rand.Next() % 2000 - 1000, rand.Next() % 2000 - 1000);
                starRotation[i] = (float)(rand.NextDouble() % (Math.PI * 2));
            }

            new Thread(loadSpine2).Start();
            new Thread(loadContent2).Start();
        }
Exemple #2
0
        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;
            }
        }