IGameInputReading
封装单个输入更新的数据。 此接口的方法允许您通过若干设备的镜头解释游戏输入,以及获取与发送输入的设备有关的信息。 此接口将帮助您把输入解释为与某个时刻的游戏控制器状态有关的可操作信息。
语法
class IGameInputReading : public IUnknown
方法
方法 | 说明 |
---|---|
GetArcadeStickState | IGameInputReading GetArcadeStickState API 参考 |
GetControllerAxisCount | 检索游戏控制器上的轴数。 |
GetControllerAxisState | IGameInputReading GetControllerAxisState API 参考 |
GetControllerButtonCount | 检索游戏手柄上的按钮数。 |
GetControllerButtonState | IGameInputReading GetControllerButtonState API 参考 |
GetControllerSwitchCount | 检索游戏控制器上的开关数。 |
GetControllerSwitchState | IGameInputReading GetControllerSwitchState API 参考 |
GetDevice | IGameInputReading::GetDevice API |
GetFlightStickState | IGameInputReading GetFlightStickState API 参考 |
GetGamepadState | IGameInputReading::GetGamepadState API |
GetInputKind | IGameInputReading::GetInputKind API |
GetKeyCount | 检索游戏手柄上处于活动状态的键数。 |
GetKeyState | 检索游戏控制器输入上处于活动状态的键的状态。 |
GetMotionState | IGameInputReading GetMotionState API 参考 |
GetMouseState | IGameInputReading GetMouseState API 参考 |
GetRacingWheelState | IGameInputReading GetRacingWheelState API 参考 |
GetRawReport | 从设备输入检索原始数据。 |
GetSequenceNumber | IGameInputReading GetSequenceNumber API 参考 |
GetTimestamp | IGameInputReading::GetTimestamp API |
GetTouchCount | 检索游戏控制器上的触控点数。 |
GetTouchState | 从所有触摸数字化器检索状态。 |
GetUiNavigationState | IGameInputReading GetUiNavigationState API 参考 |
备注
在一个 IGameInputReading 实例中捕获从某一设备接收的每个输入状态变化。 实质上,这是特定时刻的设备输入状态的快照。 IGameInputReading 接口提供从该设备对原始输入报告数据的访问权限,以及这些数据的不同转换。
在一个新报告中捕获原始输入数据后,GameInput API 将检查这些数据并且尝试将它们转换为其他(更有用的)表示形式。 对于非常少见的例外情况,这些数据转换为一个或多个基础表示形式 - 按钮和轴值的数组、键状态的数组等。12 如果可能,数据还可以转换为一个或多个抽象固定格式表示形式,例如游戏板状态。
因此,单个 IGameInputReading 实例常常包含相同输入数据的多个“视图”。 这通过使其在需要时能够访问或多或少的低级别详细信息,满足复杂程度各异的广泛的应用程序的需要。 对于在 GameInputKind 枚举中定义的每种输入数据类型,都存在一个相应的 IGameInputReading 方法以便检索该类型的数据。
请务必注意,只有在两个连续 IGameInputReading 实例(来自相同设备)中捕获的原始报告数据要确保是不同的。 这是因为原始数据中的变化可能不会始终导致对这些数据的更高级别转换的更改。 通过轮询以及 IGameInput 接口上的基于事件的 API 来理解这个事实,并且相应考虑到这个情况。 例如,提供 GameInputKindGamepad(而不是其他函数)的输入类型筛选器的应用程序将仅接收其原始数据导致了对以前计算的游戏板状态的更改的读取。
从输入流检索的每个 IGameInputReading 都是单一实例;多次检索相同读取只是递增基础对象上的引用计数。 因此,IGameInputReading 实例可以比较引用相等性。 在对读取实例的所有引用全都释放前,IGameInputReading 实例始终保持有效(并且可以从其检索状态)- 即使基础设备已断开与系统的连接;或者如果读取内容太旧了,不再处于输入流缓冲区中。 因为此接口上的所有方法都只是检索在读取中存储的缓存数据,所以,它们全都非常快地返回,并且可以安全地从时间敏感上下文调用。
要求
头文件:GameInput.h
支持平台:Windows、Xbox One 系列主机和 Xbox Series 主机