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