IGameInputReading::GetKeyState
检索键盘输入上处于活动状态的键的状态。
语法
uint32_t GetKeyState(
uint32_t stateArrayCount,
GameInputKeyState* stateArray
)
参数
stateArrayCount _In_
类型:uint32_t
返回游戏控制器上处于活动状态的键的数量。 可通过调用 IGameInputReading::GetKeyCount 方法获取它。
stateArray _Out_writes_(stateArrayCount)
类型:GameInputKeyState*
指向 GameInputKeyState* 结构的指针。
返回值
类型:uint32_t
有效缓冲区条目的数目。
备注
IGameInputReading::GetKeyState
方法检索游戏控制器输入上处于活动状态的键的状态。 基础键盘状态仅适用于将键盘输入映射到游戏动作,如移动或开火。 它并不适用于常规的文本输入。 一个游戏需要基于此状态的大量代码,以实现像文本框这样的简单项目(更不用说 IME 之类的复杂功能了)。 其他 API 应用于需要该功能的位置。
每个键的状态并不存储在该数组内的固定索引处。 而是数组内有效元素的数量将随着按下按键而增长,随着松开按键而减少。 新的键将添加到该数组的末尾,并且在松开某一按钮时所有项都向下移动以便填充间隙。 scancode
和 vkey
值均为零的第一个数组元素。 它指示数组中有效数据的末尾。 标准键盘只能支持一次 4 到 6 个按键,即使高端的游戏键盘也很少支持一次 12-16 个键。 因此,此方法通常将数组的最大大小保持很小(可通过 IGameInputDevice
接口查询该最大大小)。 与让应用程序每次查看键盘状态时都迭代由 256 个值组成的数组相比,上述方法的效率要高得多。
要求
头文件:GameInput.h
库:xgameruntime.lib
支持平台:Windows、Xbox One 系列主机和 Xbox Series 主机