IGameInputReading::GetKeyState
检索键盘输入上处于活动状态的按键的状态。语法
参数
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 GameInput 高级主题GameInput 概述
IGameInputReading
