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
- Наследование
- Атрибуты
- Реализации
Требования к 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 |
Сигнализирует об изменении пользователя, связанного с геймпадом. |