> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# IGameInputReading::GetKeyState

> IGameInputReading::GetKeyState

# IGameInputReading::GetKeyState

キーボード入力上でアクティブなキーの状態を取得します。

## 構文

```cpp theme={null}
uint32_t GetKeyState(
    uint32_t stateArrayCount,
    GameInputKeyState* stateArray
);
```

### パラメーター

*stateArrayCount*   \_In\_\
型: uint32\_t

キーボード上でアクティブなキーの数を返します。これは、[IGameInputReading::GetKeyCount](/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getkeycount) メソッドを呼び出して取得します。

*stateArray*   \_Out\_writes\_(stateArrayCount)
型: [GameInputKeyState\*](/reference/input/gameinput/structs/gameinputkeystate)

[GameInputKeyState\*](/reference/input/gameinput/structs/gameinputkeystate) 構造体へのポインター。

### 戻り値

型: uint32\_t

有効なバッファー エントリの数。

## 解説

`IGameInputReading::GetKeyState` メソッドは、ゲーム コントローラー入力上でアクティブなキーの状態を取得します。基本的なキーボード状態は、移動や武器の発射のようなゲーム アクションへのキーボード入力のマッピングのみを目的としています。通常のテキスト入力を目的としたものではありません。ゲームでは、テキスト ボックスのような単純な機能を実装するためにも、この状態の上にかなりの量のコードが必要になります (IME のような複雑な機能については言うまでもありません)。そのような機能が必要な場合は、他の API を使用してください。

各キーの状態は、配列内の固定されたインデックスに格納されるわけではありません。むしろ、キーが押されると配列内の有効な要素の数が増え、キーが離されると減少します。新しいキーは配列の末尾に追加され、キーが離されるとギャップを埋めるためにすべてが下にシフトされます。配列内の最初の要素で `scancode` と `vkey` の値がどちらも 0 であるものが、配列内の有効なデータの終わりを示します。標準的なキーボードでは同時に 4 ～ 6 個のキー押下しか報告できず、ハイエンドのゲーミング キーボードでも同時に 12 ～ 16 個を超えるキーをサポートすることはまれです。そのため、このアプローチでは通常、配列の最大サイズは小さく保たれます (最大サイズは `IGameInputDevice` インターフェイスを介してクエリできます)。これは、アプリケーションがキーボードの状態を確認するたびに 256 個の値の配列を反復処理するよりもはるかに効率的です。

## 要件

**ヘッダー:** GameInput.h

[GameInput の高度なトピック](/build/core-features/common/input/advanced/input-advanced-topics)\
[GameInput の概要](/build/core-features/common/input/overviews/input-overview)\
[IGameInputReading](/reference/input/gameinput/interfaces/igameinputreading/igameinputreading)

## バージョン履歴

| バージョン  | 変更点 |
| ------ | --- |
| **v0** | 導入。 |


## Related topics

- [IGameInputReading::GetKeyCount](/ja-jp/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getkeycount.md)
- [IGameInputReading::GetGamepadState](/ja-jp/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getgamepadstate.md)
- [IGameInputReading::GetMouseState](/ja-jp/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getmousestate.md)
- [IGameInputReading::GetMotionState](/ja-jp/reference/input/gameinput/deprecated/interfaces/igameinputreading/methods/igameinputreading_getmotionstate.md)
- [IGameInputReading::GetTouchState](/ja-jp/reference/input/gameinput/deprecated/interfaces/igameinputreading/methods/igameinputreading_gettouchstate.md)
