IGameInputReading::GetKeyState
キーボード入力についてアクティブなキーの状態を取得します。
構文
uint32_t GetKeyState(
uint32_t stateArrayCount,
GameInputKeyState* stateArray
)
パラメーター
stateArrayCount _In_
型: uint32_t
ゲーム コントローラーでアクティブなキーの数を返します。 これは、IGameInputReading::GetKeyCount メソッドを呼び出すことによって取得されます。
stateArray _Out_writes_(stateArrayCount)
型: GameInputKeyState*
GameInputKeyState* 構造体へのポインター。
戻り値
型: uint32_t
有効なバッファー エントリの数。
解説
IGameInputReading::GetKeyState
メソッドは、ゲーム コントローラー入力についてアクティブなキーの状態を取得します。 基本的なキーボードの状態は、武器の移動や起動などのゲームのアクションにキーボード入力をマッピングするためのものです。 通常のテキスト入力用ではありません。 ゲームでは、(IME のような複雑な機能は言うまでもなく) テキスト ボックスのようにシンプルなものを実装するために、この状態の上に大量のコードが必要です。 その他の API は、その機能が必要な場所で使用する必要があります。
各キーの状態は、配列内の固定インデックスに格納されません。 代わりに、配列内の有効な要素の数はキーが押されると増加し、キーが離されると減少します。 新しいキーは配列の最後に追加され、キーを離したときにすべてが下にシフトされてギャップが埋められます。
scancode
と vkey
の値がどちらもゼロである最初の配列要素。 これは、配列内の有効なデータの終わりを示します。 標準キーボードでは、一度に 4 から 6 のキー押下のみレポートでき、ハイエンドのゲーム キーボードでも一度に 12 から 16 を超えるキーがサポートされることはほとんどありません。 そのため、このアプローチでは通常、配列の最大サイズが小さく維持されます (最大サイズは IGameInputDevice
インターフェイスを使用してクエリできます)。 これは、アプリケーションでキーボードの状態を確認するたびに 256 の値の配列を反復処理するより、はるかに効率的です。
要件
ヘッダー: GameInput.h
ライブラリ: xgameruntime.lib
サポートされているプラットフォーム: Windows、Xbox One ファミリー本体、Xbox Series 本体