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

原始游戏控制器的硬件产品 ID。

HardwareVendorId

原始游戏控制器的硬件供应商 ID。

Headset

连接到原始游戏控制器的音频耳机。

IsWireless

获取一个值,该值指示原始游戏控制器的无线状态。

NonRoamableId

标识控制器的唯一 ID。 只要控制器已连接,ID 就永远不会更改。

RawGameControllers

所有已连接的原始游戏控制器的列表。

SimpleHapticsControllers

SimpleHapticsController 对象的集合,表示设备上可用的所有可用的触觉反馈马达。

SwitchCount

原始游戏控制器上的开关数。

User

与原始游戏控制器关联的用户。

方法

FromGameController(IGameController)

返回给定的游戏控制器作为原始游戏控制器。

GetButtonLabel(Int32)

检索指定按钮的按钮标签。

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

获取原始游戏控制器状态的快照。

GetSwitchKind(Int32)

获取原始游戏控制器上指定开关的类型。

TryGetBatteryReport()

获取有关原始游戏控制器当前电池状态的信息。

事件

HeadsetConnected

当头戴显示设备连接到原始游戏控制器时发出信号。

HeadsetDisconnected

当头戴显示设备与原始游戏控制器断开连接时发出信号。

RawGameControllerAdded

连接新的原始游戏控制器时发出信号。

RawGameControllerRemoved

当原始游戏控制器断开连接时发出信号。

UserChanged

与原始游戏控制器关联的用户发生更改时发出信号。

适用于

另请参阅