Поделиться через


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 (Gaming Input Protocol) или совместимый с XUSB геймпад.

Журнал версий

Версия Windows Версия пакета SDK Добавленная стоимость
1607 14393 GetButtonLabel
1703 15063 FromGameController
1703 15063 TryGetBatteryReport

Свойства

Gamepads

Список всех подключенных геймпадов.

Headset

Аудио гарнитура, подключенная к геймпаду.

IsWireless

Возвращает значение, указывающее состояние беспроводной сети геймпада.

User

Пользователь, связанный с геймпадом.

Vibration

Описывает скорость мотора геймпада.

Методы

FromGameController(IGameController)

Возвращает заданный игровой контроллер в качестве геймпада.

GetButtonLabel(GamepadButtons)

Извлекает метку кнопки для указанной кнопки.

GetCurrentReading()

Возвращает snapshot состояния геймпада.

TryGetBatteryReport()

Возвращает сведения о текущем состоянии батареи геймпада.

События

GamepadAdded

Сигнал при подключении нового геймпада.

GamepadRemoved

Сигнализирует при отключении геймпада.

HeadsetConnected

Сигнал, когда гарнитура подключена к геймпаду.

HeadsetDisconnected

Сигнализирует, когда гарнитура отключена от геймпада.

UserChanged

Сигнализирует об изменении пользователя, связанного с геймпадом.

Применяется к

См. также раздел