다음을 통해 공유


Gamepad 클래스

정의

게임 패드를 나타냅니다.

public ref class Gamepad sealed
public ref class Gamepad sealed : IGameControllerBatteryInfo
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class Gamepad final
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class Gamepad final : IGameControllerBatteryInfo
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class Gamepad
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class Gamepad : IGameControllerBatteryInfo
Public NotInheritable Class Gamepad
Public NotInheritable Class Gamepad
Implements IGameControllerBatteryInfo
상속
Object Platform::Object IInspectable Gamepad
특성
구현

Windows 요구 사항

디바이스 패밀리
Windows 10 (10.0.10240.0에서 도입되었습니다.)
API contract
Windows.Foundation.UniversalApiContract (v1.0에서 도입되었습니다.)

예제

다음 코드 조각은 Gamepad.Gamepads 목록을 반복하고 각 코드 조각을 벡터에 추가하는 방법을 보여 줍니다. 언제든지 변경될 수 있으므로 벡터에 잠금을 설정해야 합니다(예: 컨트롤러의 연결이 끊어지거나 다시 연결될 수 있습니다).

#include <concrt.h>
#include <winrt/Windows.Gaming.Input.h>
using namespace winrt;
using namespace Windows::Gaming::Input;
...
std::vector<Gamepad> myGamepads;
concurrency::critical_section myLock{};

for (auto const& gamepad : Gamepad::Gamepads())
{
    // Test whether the gamepad is already in myGamepads; if it isn't, add it.
    concurrency::critical_section::scoped_lock lock{ myLock };
    auto it{ std::find(begin(myGamepads), end(myGamepads), gamepad) };

    if (it == end(myGamepads))
    {
        // This code assumes that you're interested in all gamepads.
        myGamepads.push_back(gamepad);
    }
}
auto myGamepads = ref new Vector<Gamepad^>();
critical_section myLock{};

for (auto gamepad : Gamepad::Gamepads)
{
    // Test whether the gamepad is already in myGamepads; if it isn't, add it.
    critical_section::scoped_lock lock{ myLock };
    auto it = std::find(begin(myGamepads), end(myGamepads), gamepad);

    if (it == end(myGamepads))
    {
        // This code assumes that you're interested in all gamepads.
        myGamepads->Append(gamepad);
    }
}

설명

Gamepad 클래스의 인스턴스는 직접 만들 수 없습니다. 대신 Gamepad 클래스의 인스턴스는 연결된 모든 게임 패드를 나열하는 Gamepad.Gamepads 속성 또는 Gamepad.GamepadAdded 이벤트를 통해 검색됩니다.

지원되는 디바이스

게임 패드 는 모든 GIP(게임 입력 프로토콜) 또는 XUSB 호환 게임 패드를 지원합니다.

버전 기록

Windows 버전 SDK 버전 추가된 값
1607 14393 GetButtonLabel
1703 15063 FromGameController
1703 15063 TryGetBatteryReport

속성

Gamepads

연결된 모든 게임 패드의 목록입니다.

Headset

게임 패드에 연결된 오디오 헤드셋입니다.

IsWireless

게임 패드의 무선 상태를 나타내는 값을 가져옵니다.

User

게임 패드와 연결된 사용자입니다.

Vibration

게임 패드 모터 속도를 설명합니다.

메서드

FromGameController(IGameController)

지정된 게임 컨트롤러를 게임 패드로 반환합니다.

GetButtonLabel(GamepadButtons)

지정된 단추의 단추 레이블을 검색합니다.

GetCurrentReading()

게임 패드 상태의 스냅샷 가져옵니다.

TryGetBatteryReport()

게임 패드의 현재 배터리 상태에 대한 정보를 가져옵니다.

이벤트

GamepadAdded

새 게임 패드가 연결되면 신호를 보냅니다.

GamepadRemoved

게임 패드의 연결이 끊어지면 신호를 보냅니다.

HeadsetConnected

헤드셋이 게임 패드에 연결되면 신호를 보냅니다.

HeadsetDisconnected

게임 패드에서 헤드셋의 연결이 끊어지면 신호를 보냅니다.

UserChanged

게임 패드와 연결된 사용자가 변경된 시점을 신호로 표시합니다.

적용 대상

추가 정보