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 应用于需要该功能的位置。

每个键的状态并不存储在该数组内的固定索引处。 而是数组内有效元素的数量将随着按下按键而增长,随着松开按键而减少。 新的键将添加到该数组的末尾,并且在松开某一按钮时所有项都向下移动以便填充间隙。 scancodevkey 值均为零的第一个数组元素。 它指示数组中有效数据的末尾。 标准键盘只能支持一次 4 到 6 个按键,即使高端的游戏键盘也很少支持一次 12-16 个键。 因此,此方法通常将数组的最大大小保持很小(可通过 IGameInputDevice 接口查询该最大大小)。 与让应用程序每次查看键盘状态时都迭代由 256 个值组成的数组相比,上述方法的效率要高得多。

要求

头文件:GameInput.h

库:xgameruntime.lib

支持平台:Windows、Xbox One 系列主机和 Xbox Series 主机

另请参阅

高级 GameInput 主题
GameInput 概述
IGameInputReading