前回に引き続き、キーボード入力について…

前回のおさらい:

前回は
KeyboardState keyState = Keyboard.GetState();
if (keyState.IsKeyDown(Key.A)) { 処理 }
・・・
といった感じでまとめましたが、これをどうハンドリングするかについてちょっとだけ書き足しておきます。

XNAのサンプルでも似たような処理法を取っていますが、インプット(ie. マウス、キーボード、ゲームパッド)をハンドルするためだけのブロックを作り、そこで全てを管理しましょう!(当たり前?ねぇこれって当たり前・・・?)

インプットは常に監視したいので、Updateから呼び出すのがベストですね。
こんな感じ…

ゲームクラス直下:
private KeyboardState keyState;

private void monitorInput()
{
keyState = Keyboard.GetState();

//共通処理などを書くと便利
//例えば、ESCでゲーム終了など

}

protected override void Update(GameTime gameTime)
{
monitorInput(); //インプットの状況をモニタ
//ここで描画などをコール
}

どうでしょうか?
あんまり役に立たないかもしれませんが、私のような初心者には便利かも、です。
皆さんこんばんは!XNA初心者のJAKEWISEです。

今日は自分への備忘録という意味合いも含め(おぃおぃ)、XNAでWindowsゲームを開発する時に必須な事項その1、「キーボード入力」について簡単にまとめてみました。

XNAでキーボードを利用する事は非常に簡単です。本当に簡単です。笑えます。

キーボードの情報を取得するには、
KeyboardState keyState = Keyboard.GetState();
の一行でOKです。(keyStateはあなたのお好みの変数を使ってください。)

どのキーが押されたか判定するには、先ほど宣言したkeyStateのIsKeyDown(Keys.キー)を使います。
以下サンプルです。

private void UpdateKeyInput()
{
//キーボード情報を取得
KeyboardState keyState = Keyboard.GetState();

//キーを判別
if (keyState.IsKeyDown(Key.A))
{
//キーが押された場合の処理を書きます
}
if (keyState.IsKeyDown(Key.B))
{
//キーが押された場合の処理を書きます
}
}
上記サンプルはキーボードで「A」、「B」が押された時に何らかの処理を実行するものです。
簡単ですので、利用してみてください。

さて、こういった入力の処理はどこからコールすればいいのでしょうか?
XNAでWindowsゲームを新規作成すると、自動的にUpdate()という部分が作成されます。
そのUpdateから上のサンプルをコールすればOKです。

今回のキーボード入力を使ってできること:
- カメラの方向、位置などの変更
- メニューの項目の切り替え
- シューティングゲームなど、自機の移動
というわけで、知る人は知っている、私JAKEWISEですが、
今回はXNA Microsoft Game Studio Express 1.0 Refreshに挑戦です!

ちなみに、XNAとは米Microsoft社が自社ゲームコンソールのXBOX360と、Windows用に開発したゲーム開発専用のフレームワークです。
何といっても素晴らしいのは、無料である事!
そして、海外なので英語ですが、始めるには十分なほど資料、チュートリアルがそろっている事です。
これからどんどんコンテンツ追加していきますので、どうぞよろしく!