読者です 読者をやめる 読者になる 読者になる

がりらぼ

WindowsRuntimeの応援ブログ

MonoGameWindowsRuntimeゲームプログラミング入門vol9:キーボード入力を検知する

C# MonoGame

Keyboard

キーボード入力を検知するには、KeyboardクラスのGetStateメソッドを使います。

GetStateで取得できるKeyboardStateクラスでは、IsKeyDownメソッドでそのキーが押されているかを判定できます。

また、GetPressedKeysメソッドで現在押されているキー一覧を取得することができます。

 

Keyboardクラスを使うには以下の名前空間を追加します。

using Microsoft.Xna.Framework.Input;

 

KeyboardState kState = Keyboard.GetState();
if (kState.IsKeyDown(Keys.Space))
{
    //スペースキーが押されたとき
}
if (kState.IsKeyUp(Keys.A))
{
    //Aキーが押し上げのとき
}



foreach (Keys k in kState.GetPressedKeys())
{
    
}

 

サンプル

public class Game1 : Game
{
    GraphicsDeviceManager graphics;
    SpriteBatch spriteBatch;

    SpriteFont font;
    string text;

    public Game1()
    {
        graphics = new GraphicsDeviceManager(this);
        Content.RootDirectory = "Content";

    }


    protected override void Initialize()
    {
        text = "no state";
        base.Initialize();
    }


    protected override void LoadContent()
    {
        spriteBatch = new SpriteBatch(GraphicsDevice);
        font = Content.Load<SpriteFont>("TestFont");
  
    }

    protected override void UnloadContent()
    {
        
        
    }


    protected override void Update(GameTime gameTime)
    {

        KeyboardState kState = Keyboard.GetState();
        if (kState.IsKeyDown(Keys.Space))
        {
            //スペースキーが押されたとき
        }
        if (kState.IsKeyUp(Keys.A))
        {
            //Aキーが押し上げのとき
        }

        text = "pressed: ";

        foreach (Keys k in kState.GetPressedKeys())
        {
            text += k.ToString()+" ";
        }

        base.Update(gameTime);
    }


    protected override void Draw(GameTime gameTime)
    {
        GraphicsDevice.Clear(Color.CornflowerBlue);

        spriteBatch.Begin();

        spriteBatch.DrawString(font,text,new Vector2(10,10),Color.White);

        spriteBatch.End();

        base.Draw(gameTime);
    }
}

94

 

 

サンプルコード

SmapleGameMono_7_InputKey.zip

 

キーボード入力を検知する | garicchi.com

目次