Gamepad 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
게임 패드를 나타냅니다.
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
- 상속
- 특성
- 구현
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 |
게임 패드와 연결된 사용자가 변경된 시점을 신호로 표시합니다. |