コード例 #1
0
ファイル: GameWorld.cs プロジェクト: Bassie-c/Tetris_2019
    /// <summary>
    /// Handles all the player input.
    /// <param name="gameTime"></param>
    /// <param name="inputHelper"></param>
    public void HandleInput(GameTime gameTime, InputHelper inputHelper)
    {
        switch (gameState)
        {
        case GameState.Start:

            if (inputHelper.KeyPressed(Microsoft.Xna.Framework.Input.Keys.Space))
            {
                GameStart();
            }
            break;

        case GameState.Playing:

            if (inputHelper.KeyPressed(Microsoft.Xna.Framework.Input.Keys.Escape))
            {
                OpenGameMenu();
            }

            if (inputHelper.KeyPressed(Microsoft.Xna.Framework.Input.Keys.Left))
            {
                activeBlock.MoveLeft();
            }

            if (inputHelper.KeyPressed(Microsoft.Xna.Framework.Input.Keys.Right))
            {
                activeBlock.MoveRight();
            }

            if (inputHelper.KeyPressed(Microsoft.Xna.Framework.Input.Keys.Down))
            {
                activeBlock.MoveDown();
            }

            if (inputHelper.KeyPressed(Microsoft.Xna.Framework.Input.Keys.Up))
            {
                while (activeBlock != null)
                {
                    activeBlock.MoveDown();
                }
            }

            if (inputHelper.KeyPressed(Microsoft.Xna.Framework.Input.Keys.A))
            {
                activeBlock.RotateCounterclockwise();
            }

            if (inputHelper.KeyPressed(Microsoft.Xna.Framework.Input.Keys.D))
            {
                activeBlock.RotateClockwise();
            }

            // Quick GameOver debug cheat
            if (inputHelper.KeyDown(Microsoft.Xna.Framework.Input.Keys.NumPad0))
            {
                GameOver();
            }
            break;

        case GameState.GameMenu:

            if (inputHelper.KeyPressed(Microsoft.Xna.Framework.Input.Keys.Escape))
            {
                CloseGameMenu();
            }

            if (inputHelper.KeyPressed(Microsoft.Xna.Framework.Input.Keys.Space))
            {
                GameOver();
                GameHomescreen();
            }
            break;

        case GameState.GameOver:

            if (inputHelper.KeyPressed(Microsoft.Xna.Framework.Input.Keys.Space))
            {
                GameStart();
            }

            if (inputHelper.KeyPressed(Microsoft.Xna.Framework.Input.Keys.Escape))
            {
                GameHomescreen();
            }
            break;
        }
    }