「GetPressedKeys」タグのついた投稿

今回は最近よくある、短めで基本的なメモです。

 

キーボードでの入力確認のあれこれは既に書きましたが、今回はXNAの昨日を使用して現在押されている全てのキーを獲得する方法をメモります。

 

まず、現在のキーボードの状態を獲得します。獲得したKeyboardStateから、GetPressedKeys()メソッドを呼びます。このメソッドは、KeyboardStateから押されている全てのキーをKeyの配列(Key[])として返します。

 

KeyboardState keyState = Keyboard.GetState();

// 押されているキーの一覧を取得
Keys[] currentKeys = keyState.GetPressedKeys();

 

これで全てなので、一応確認用に押されているキーを描画します。

 

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

// 押されているキーの一覧を取得
KeyboardState keyState = Keyboard.GetState();
Keys[] currentKeys = keyState.GetPressedKeys();

spriteBatch.Begin();

// 押されているキーの一覧を表示する
int ySpace = 25;
int y = 1;

for (int i = 0; i < currentKeys.Length; ++i)
{
spriteBatch.DrawString(font, currentKeys[i].ToString(), new Vector2(20.0f, y), Color.White);
y += ySpace;
}

spriteBatch.End();
base.Draw(gameTime);
}
 

 

こんな感じになります。

 

以上です。