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