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


RawGameController Класс

Определение

Представляет любой тип игрового контроллера.

public ref class RawGameController sealed : IGameControllerBatteryInfo
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 262144)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class RawGameController final : IGameControllerBatteryInfo
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 262144)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class RawGameController : IGameControllerBatteryInfo
Public NotInheritable Class RawGameController
Implements IGameControllerBatteryInfo
Наследование
Object Platform::Object IInspectable RawGameController
Атрибуты
Реализации

Требования к Windows

Семейство устройств
Windows 10 Creators Update (появилось в 10.0.15063.0)
API contract
Windows.Foundation.UniversalApiContract (появилось в v4.0)

Примеры

В следующем фрагменте кода показано, как выполнить цикл по списку RawGameController.RawGameControllers и добавить каждый объект RawGameController в вектор. Вам потребуется установить блокировку вектора, так как все может измениться в любое время (например, контроллер может быть отключен или повторно подключен).

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

for (auto const& rawGameController : RawGameController::RawGameControllers())
{
    // Test whether the raw game controller is already in myRawGameControllers; if it isn't, add it.
    concurrency::critical_section::scoped_lock lock{ myLock };
    auto it{ std::find(begin(myRawGameControllers), end(myRawGameControllers), rawGameController) };

    if (it == end(myRawGameControllers))
    {
        // This code assumes that you're interested in all raw game controllers.
        myRawGameControllers.push_back(rawGameController);
    }
}

Комментарии

Экземпляры класса RawGameController нельзя создать напрямую; Вместо этого экземпляры класса извлекаются с помощью свойства RawGameController.RawGameControllers со списком всех подключенных игровых контроллеров или с помощью события RawGameController.RawGameControllerAdded .

Все входные данные, доступные в RawGameController , предоставляются в виде простых массивов неименованных кнопок, переключателей и осей. С помощью этого класса вы можете разрешить клиентам создавать пользовательские сопоставления входных данных независимо от типа используемого ими контроллера.

Вам потребуется создать эти массивы самостоятельно, а затем заполнить их с помощью GetCurrentReading , чтобы определить состояния кнопок, переключателей и осей. Дополнительные сведения см. в документации по этой функции.

Сведения об использовании класса RawGameController см. в разделе Необработанный игровой контроллер.

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

Версия Windows Версия пакета SDK Добавленная стоимость
1709 16299 DisplayName
1709 16299 NonRoamableId
1709 16299 SimpleHapticsControllers

Свойства

AxisCount

Количество осей на необработанном игровом контроллере.

ButtonCount

Количество кнопок на необработанном игровом контроллере.

DisplayName

Имя контроллера, предоставляемое оборудованием.

ForceFeedbackMotors

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

HardwareProductId

Идентификатор аппаратного продукта необработанного игрового контроллера.

HardwareVendorId

Идентификатор поставщика оборудования необработанного игрового контроллера.

Headset

Звуковая гарнитура, подключенная к необработанному игровому контроллеру.

IsWireless

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

NonRoamableId

Уникальный идентификатор, определяющий контроллер. Пока контроллер подключен, идентификатор никогда не изменится.

RawGameControllers

Список всех подключенных необработанных игровых контроллеров.

SimpleHapticsControllers

Коллекция объектов SimpleHapticsController , представляющих все доступные тактильные двигатели обратной связи, доступные на устройстве.

SwitchCount

Количество переключателей на необработанном игровом контроллере.

User

Пользователь, связанный с необработанным игровым контроллером.

Методы

FromGameController(IGameController)

Возвращает заданный игровой контроллер в виде необработанного игрового контроллера.

GetButtonLabel(Int32)

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

GetCurrentReading(Boolean[], GameControllerSwitchPosition[], Double[])

Возвращает snapshot состояния необработанного игрового контроллера.

GetSwitchKind(Int32)

Возвращает тип указанного переключателя на необработанном игровом контроллере.

TryGetBatteryReport()

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

События

HeadsetConnected

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

HeadsetDisconnected

Сигнализирует, когда гарнитура отключена от необработанного игрового контроллера.

RawGameControllerAdded

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

RawGameControllerRemoved

Сигнализирует при отключении необработанного игрового контроллера.

UserChanged

Указывает, что пользователь, связанный с необработанным игровым контроллером, изменился.

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

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