Danmaku_no_Kyojin.Screens.TitleScreen.Update C# (CSharp) Method

Update() public method

public Update ( GameTime gameTime ) : void
gameTime Microsoft.Xna.Framework.GameTime
return void
        public override void Update(GameTime gameTime)
        {
            ControlManager.Update(gameTime, PlayerIndex.One);

            if (InputHandler.PressedCancel() && _passStep != 8)
                Game.Exit();

            if (InputHandler.PressedUp())
            {
                _menuIndex--;

                if (_menuIndex < 0)
                    _menuIndex = _menuText.Length - 1;

                GameRef.Select.Play();
            }

            if (InputHandler.PressedDown())
            {
                _menuIndex = (_menuIndex + 1) % _menuText.Length;
                GameRef.Select.Play();
            }

            if (InputHandler.PressedAction() && _passStep != 9)
            {
                GameRef.Choose.Play();

                // 1 Player
                if (_menuIndex == 0)
                {
                    Config.PlayersNumber = 1;
                    StateManager.ChangeState(GameRef.GameplayScreen);
                }
                // 2 Players
                else if (_menuIndex == 1)
                {
                    Config.PlayersNumber = 2;
                    StateManager.ChangeState(GameRef.GameplayScreen);
                }
                // Improvements
                else if (_menuIndex == 2)
                    StateManager.ChangeState(GameRef.ImprovementScreen);
                // Options
                else if (_menuIndex == 3)
                    StateManager.ChangeState(GameRef.OptionsScreen);
                // Exit
                else if (_menuIndex == 4)
                    Game.Exit();
            }

            if (_backgroundMainRectangle.X + Config.Resolution.X <= 0)
                _backgroundMainRectangle.X = _backgroundRightRectangle.X + Config.Resolution.X;

            if (_backgroundRightRectangle.X + Config.Resolution.X <= 0)
                _backgroundRightRectangle.X = _backgroundMainRectangle.X + Config.Resolution.X;

            /*
            if (_backgroundMainRectangle.Y + _backgroundImage.Height <= 0)
                _backgroundMainRectangle.Y = _backgroundTopRectangle.Y - _backgroundImage.Height;

            if (_backgroundTopRectangle.Y + _backgroundImage.Height <= 0)
                _backgroundTopRectangle.Y = _backgroundMainRectangle.Y - _backgroundImage.Height;
            */

            _backgroundMainRectangle.X -= (int)(70 * (float)gameTime.ElapsedGameTime.TotalSeconds);
            _backgroundRightRectangle.X -= (int)(70 * (float)gameTime.ElapsedGameTime.TotalSeconds);

            // Cheat and debug mode
            if (!Config.Cheat)
            {
                if ((_passStep == 0 || _passStep == 1) && InputHandler.PressedUp())
                {
                    _passStep++;
                }
                else if ((_passStep == 2 || _passStep == 3) && InputHandler.PressedDown())
                {
                    _passStep++;
                }
                else if ((_passStep == 4 || _passStep == 6) && InputHandler.PressedLeft())
                {
                    _passStep++;
                }
                else if ((_passStep == 5 || _passStep == 7) && InputHandler.PressedRight())
                {
                    _passStep++;
                }
                else if (_passStep == 8 && (InputHandler.PressedCancel() || InputHandler.KeyPressed(Keys.B)))
                {
                    _passStep++;
                }
                else if (_passStep == 9 && (InputHandler.PressedAction() || InputHandler.KeyPressed(Keys.A)))
                {
                    _passStep++;
                }

                if (_passStep == 10)
                {
                    Config.Cheat = true;
                    _passSound.Play();
                }
            }
            else if (InputHandler.KeyDown(Keys.F9))
            {
                Config.Debug = !Config.Debug;
            }

            #if DEBUG
            if (InputHandler.KeyDown(Keys.F10))
            {
                StateManager.ChangeState(GameRef.DebugScreen);
            }
            else if (InputHandler.KeyDown(Keys.F12))
            {
                StateManager.ChangeState(GameRef.PatternTestScreen);
            }
            #endif

            if (Config.Cheat)
            {
                if (InputHandler.KeyDown(Keys.A) || InputHandler.ButtonDown(Buttons.Y, PlayerIndex.One))
                {
                    PlayerData.Credits += 1000;
                }
            }

            base.Update(gameTime);
        }