> ## 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::GetInputKind](/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getinputkind) 메서드를 호출하여 특정 [IGameInputReading](/reference/input/gameinput/interfaces/igameinputreading/igameinputreading)에 대해 어떤 Get\*State 함수가 유효한 해석을 반환할지 확인하세요. 각 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](/ko/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getdevice.md)
- [IGameInputReading::GetMouseState](/ko/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getmousestate.md)
- [IGameInputReading::GetKeyState](/ko/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getkeystate.md)
- [IGameInputReading::GetMotionState](/ko/reference/input/gameinput/deprecated/interfaces/igameinputreading/methods/igameinputreading_getmotionstate.md)
- [IGameInputReading::GetTouchState](/ko/reference/input/gameinput/deprecated/interfaces/igameinputreading/methods/igameinputreading_gettouchstate.md)
