XNA メモ – キーが離された事を知る方法

Posted: 2012年2月20日 カテゴリー: プログラミングメモ, XNA, XNAメモ
タグ:, , , ,

今回は、前回紹介したのとは逆で、キーが話された時のみtrueを返すメソッドの実装方法をメモります。

実装方法は前回と同じで前のフレームと現在のフレームの入力状態を保存し、それらの状態を確認します。違う所は、確認方法が前回とは逆で、前のフレームでは入力があり、現在のフレームでは入力が無い状態でのみtrueを返すメソッドを実装します。

「こんなの何時使うんだー!」と思うかもしれませんが、あると便利なときもあります。一つの例としては、何かをドラッグ&ドロップするようなゲームを作る場合(World of Gooみたいな)、キーを離した瞬間に処理を行うことを簡単に出来るようになります。

実装は前回同様、前のフレームのキー状態と、現在のキー状態を保存する変数を宣言します。

KeyboardState m_KeyState;     // 現在の状態
KeyboardState m_prevKeyState; // 前のフレームの状態

またまた前回と同じで、Update()メソッドが呼ばれるたびにキーの状態を更新します。

m_prevKeyState = m_KeyState;
m_KeyState = Keyboard.GetState();

次に確認をするメソッドですが、上で説明したとおり、ここは前回と少し違います。

public bool IsReleased(Keys key)
{
return ( m_KeyState.IsKeyUp(key) && m_prevKeyState.IsKeyDown(key) );
}

後は、実際に使うだけです。

if ( IsReleased( Keys.Escape ) )
{
// ... 離された時の処理
}

以上です。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中