RawGameController 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示任何类型的游戏控制器。
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 |
原始游戏控制器的硬件产品 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 |
与原始游戏控制器关联的用户发生更改时发出信号。 |