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

# GetGamepadState

> IGameInputReading::GetGamepadState

# IGameInputReading::GetGamepadState

게임패드의 상태를 설명하는 입력 판독의 뷰를 검색합니다.

## 구문

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

### 매개변수

*state*   \_Out\_\
형식: [GameInputGamepadState\*](https://docs.xbox.com/ko/reference/input/gameinput/structs/gameinputgamepadstate.md)

입력을 게임패드로 해석한 결과입니다.

### 반환값

형식: bool

게임패드 해석에 성공하면 true를 반환합니다.
게임패드로 인식되지 않는 입력을 읽으려고 하면 false를 반환합니다.

## 설명

[IGameInputReading::GetInputKind](https://docs.xbox.com/ko/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getinputkind.md) 메서드를 호출하여 특정 [IGameInputReading](https://docs.xbox.com/ko/reference/input/gameinput/interfaces/igameinputreading/igameinputreading.md)에 대해 어떤 Get\*State 함수가 유효한 해석을 반환할지 확인하세요. 각 Get\*State 함수는 [IGameInputReading::GetInputKind](https://docs.xbox.com/ko/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getinputkind.md) 열거형에 대응하는 항목이 있습니다. 대응하는 [IGameInputReading::GetInputKind](https://docs.xbox.com/ko/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getinputkind.md) 플래그가 설정되지 않은 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 개요](https://docs.xbox.com/ko/build/core-features/common/input/overviews/input-overview.md)\
[IGameInputReading](https://docs.xbox.com/ko/reference/input/gameinput/interfaces/igameinputreading/igameinputreading.md)\
[IGameInputReading::GetInputKind](https://docs.xbox.com/ko/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getinputkind.md)

## 버전 기록

| 버전 | 변경 사항 |
| - | - |
| **v0** | 도입됨. |


## Related topics

- [GetDevice](https://docs.xbox.com/ko/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getdevice.md)
- [IGameInputReading (인터페이스 콘텐츠)](https://docs.xbox.com/ko/reference/input/gameinput/interfaces/igameinputreading/igameinputreading.md)
- [XINPUT_GAMEPAD](https://docs.xbox.com/ko/reference/input/xinputongameinput/structs/xinput_gamepad.md)
- [XINPUT_STATE](https://docs.xbox.com/ko/reference/input/xinputongameinput/structs/xinput_state.md)
- [GameInputGamepadButtons](https://docs.xbox.com/ko/reference/input/gameinput/enums/gameinputgamepadbuttons.md)
