> ## 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::GetGamepadState

> IGameInputReading::GetGamepadState

# IGameInputReading::GetGamepadState

ゲームパッドの状態を表す入力読み取りのビューを取得します。

## 構文

```cpp theme={null}
bool GetGamepadState(
    GameInputGamepadState* state
);
```

### パラメーター

*state*   \_Out\_\
型: [GameInputGamepadState\*](/reference/input/gameinput/structs/gameinputgamepadstate)

入力をゲームパッドとして解釈したものです。

### 戻り値

型: bool

ゲームパッドとして正常に解釈できた場合は true を返します。
ゲームパッドとして認識されない入力を読み取ろうとした場合は false を返します。

## 解説

ある [IGameInputReading](/reference/input/gameinput/interfaces/igameinputreading/igameinputreading) について、どの Get\*State 関数が有効な解釈を返すかを確認するには、[IGameInputReading::GetInputKind](/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getinputkind) メソッドを呼び出します。各 Get\*State 関数には、[IGameInputReading::GetInputKind](/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getinputkind) 列挙型に対応するエントリがあります。対応する [IGameInputReading::GetInputKind](/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getinputkind) フラグが設定されていない状態で Get\*State 関数を呼び出そうとすると、関数はデフォルトの静止値と共に false の戻り値を返します。

次の C++ サンプルは、ゲームパッドの状態を読み取る方法を示しています。

```cpp theme={null}
void PlayerCrouch();
void PlayerStand();
void PlayerReload();
void PlayerMove(float, float);
void SetCameraOrientation(float, float);

void ProcessGamepadState(
    _In_ IGameInputReading * prevReading,
    _In_ IGameInputReading * currentReading) noexcept
{
    GameInputGamepadState prevState, currentState;
    prevReading->GetGamepadState(&prevState);
    currentReading->GetGamepadState(&currentState);

    GameInputGamepadButtons changedButtons = prevState.buttons ^ currentState.buttons;
    GameInputGamepadButtons pressedButtons = changedButtons & currentState.buttons;
    GameInputGamepadButtons releasedButtons = changedButtons ^ pressedButtons;

    if (pressedButtons & GameInputGamepadRightShoulder)
    {
        PlayerCrouch();
    }
    else if (releasedButtons & GameInputGamepadRightShoulder)
    {
        PlayerStand();
    }

    if (pressedButtons & GameInputGamepadLeftShoulder)
    {
        PlayerReload();
    }

    PlayerMove(currentState.leftThumbstickX, currentState.leftThumbstickY);
    SetCameraOrientation(currentState.rightThumbstickX, currentState.rightThumbstickY);
}
```

## 要件

[Input API の概要](/build/core-features/common/input/overviews/input-overview)\
[IGameInputReading](/reference/input/gameinput/interfaces/igameinputreading/igameinputreading)\
[IGameInputReading::GetInputKind](/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getinputkind)

## バージョン履歴

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


## Related topics

- [IGameInputReading::GetDevice](/ja-jp/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getdevice.md)
- [IGameInputReading::GetKeyState](/ja-jp/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getkeystate.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)
