1

我环顾四周,是否有人知道KeyboardState.GetPressedKeys()(in Microsoft.Xna.Framework.Input) 是否返回有组织集合中的键(列表中最近的第一个或最后一个)或一些杂乱无章的不可预测列表?

4

1 回答 1

3

数组的顺序由平台的键码代码顺序定义。

您无法使用此方法或任何其他 MonoGame 方法确定按下顺序,因为系统仅在每次游戏循环迭代时查询当前按下的键码。

在 Windows 游戏的默认帧速率 60 fps 下,这相当于 16 毫秒,按键的顺序变得有些无关紧要。试图理解键的混搭是荒谬的,除非目标是找到首先按下哪个键(作为“危险”风格的按钮)。如果是这种情况,挂钩到操作系统将提供最佳分辨率(在 Windows 上每秒最多 240 个样本)。

该顺序在平台和键盘布局中始终保持一致。请参阅KeyboardState.csKeyboard.Windows.cs的定义。

于 2019-02-13T01:28:50.477 回答