封装单个输入更新的数据。 此接口的方法允许您通过若干设备的镜头解释游戏输入,以及获取与发送输入的设备有关的信息。 此接口将帮助您把输入解释为与某个时刻的游戏控制器状态有关的可操作信息。
语法
class IGameInputReading : public IUnknown
方法
方法 | 说明 |
---|---|
GetArcadeStickState | 获取游戏控制器上街机摇杆的状态。 |
GetControllerAxisCount | 获取游戏控制器上的轴数。 |
GetControllerAxisState | 获取游戏控制器上轴的状态。 |
GetControllerButtonCount | 获取游戏控制器上的按钮数。 |
GetControllerButtonState | 获取游戏控制器上按钮的状态。 |
GetControllerSwitchCount | 获取游戏控制器上的开关数。 |
GetControllerSwitchState | 获取游戏控制器上开关的状态。 |
GetDevice | 获取链接到当前读取的设备。 |
GetFlightStickState | 获取游戏控制器上飞行摇杆的状态。 |
GetGamepadState | 获取游戏控制器上游戏板的状态。 |
GetInputKind | 获取此读取提供的输入类型。 |
GetKeyCount | 获取游戏控制器上的活动键数。 |
GetKeyState | 获取游戏控制器上活动键的状态。 |
GetMouseState | 获取游戏控制器上鼠标的状态。 |
GetRacingWheelState | 获取游戏控制器上赛车方向盘的状态。 |
GetTimestamp | 获取读取的时间戳(以微秒为单位)。 |
GetUiNavigationState | 获取游戏控制器上 UI 导航的状态。 |
备注
从设备接收的每个输入状态更改都会在实例中 IGameInputReading
捕获。 实质上,这是特定时刻的设备输入状态的快照。 接口 IGameInputReading
提供对来自设备的原始输入报表数据以及该数据的各种转换的访问。
在一个新报告中捕获原始输入数据后,GameInput API 将检查这些数据并且尝试将它们转换为其他(更有用的)表示形式。 除了极少数例外,数据将转换为一个或多个基本的表示形式 - 按钮和轴值的数组、键状态数组等。如果可能,数据还会转换为一个或多个抽象固定格式表示形式,例如游戏板状态。
因此,单个 IGameInputReading
实例通常包含相同输入数据的多个“视图”。 这通过使其在需要时能够访问或多或少的低级别详细信息,满足复杂程度各异的广泛的应用程序的需要。 对于枚举中 GameInputKind
定义的每种类型的输入数据,存在相应的 IGameInputReading
方法来检索此类数据。
从输入流中检索到的每个 IGameInputReading
都是单一实例;多次检索相同的读取只会增加基础对象的引用计数。 因此, IGameInputReading
可以比较实例的引用相等性。
IGameInputReading
实例始终保持有效 (,并且状态可以从中检索) ,直到释放对读取实例的所有引用 - 即使基础设备已与系统断开连接,或者读取时间太旧,它不再位于输入流缓冲区中。 因为此接口上的所有方法都只是检索在读取中存储的缓存数据,所以,它们全都非常快地返回,并且可以安全地从时间敏感上下文调用。
要求
头文件:GameInput.h
支持的平台: 窗户