前回に引き続き、キーボード入力について…
前回のおさらい:
前回は
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(); //インプットの状況をモニタ
//ここで描画などをコール
}
どうでしょうか?
あんまり役に立たないかもしれませんが、私のような初心者には便利かも、です。
前回のおさらい:
前回は
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(); //インプットの状況をモニタ
//ここで描画などをコール
}
どうでしょうか?
あんまり役に立たないかもしれませんが、私のような初心者には便利かも、です。