按住键盘上的两个键时的预期行为是什么?

Lon*_*ong 15 keyboard keyboard-shortcuts gaming

语境

我和一个朋友正在玩一个游戏,在游戏中播放给定角色的优化是同时按住两个按钮,即它们键QE。这意味着在游戏中,绑定到这些键的两个技能将交替使用。

即当持有QEQ E Q E Q E Q E Q E

问题

问题在于,当我按住 Q 和 E 键时,我无法复制我朋友所做的事情。我得到的是:

IE。按住Q和时EQ E E E E E E E E EE Q Q Q Q Q Q Q Q(取决于首先检测到哪个键)

与我的朋友讨论后,他说除了防重影之外,它的 n 键翻转还可​​以使此功能起作用。

然而,一旦我们开始深入研究这一点,就会发现它越来越没有意义,因为我们的两个键盘都具有上述功能。如果它提供了额外的上下文,我们的两个键盘都列在下面。

我现在想弄清楚的是是什么让他的键盘能够像它那样操作,而我的却不能这样做。

hob*_*bbs 25

防重影只有在至少按下三个键时才会发挥作用 - 只有两个键无关紧要,所以这里无关紧要。

而对于 USB 键盘,按键重复行为取决于软件,而不是键盘。键盘只是告诉计算机此时按下的所有键(直到键盘支持的“翻转”限制),并在状态发生变化时通知计算机。操作系统负责将按住的键列表与之前的状态进行比较,并生成适当的“按键按下”和“按键释放”事件,操作系统负责通知按键何时被按下了一定量时间并在适当的情况下生成额外的事件。

我见过的每个系统的行为方式都与您描述系统行为的方式相同 - typematic 只为按下的最后一个键生成重复,并且仅在按住它时(如果您松开该键,但仍按住其他键之前按下,根本没有重复)。但是由于行为是由软件定义的,所以应该可以在软件中覆盖它,只要键盘至少为 2KRO(基本上所有键盘都是;1KRO 基本上不可能进行熟练的触摸输入)。

  • +1 的答案,但不同意“1KRO 将使熟练的触摸打字基本上不可能”,因为触摸打字过去和现在都是在机械打字机上完成的,而这些实际上只是 1KRO,因为否则类型栏/罢工者(持有字母形状)碰撞! (4认同)
  • @ilkkachu:击键之间所需的间隔很大程度上取决于键的位置;连续类型的酒吧比那些甚至更远的人更容易卡住。第一台 QWERTY 打字机有一组排字条,它们在顶部两排呈锯齿形排列,另一组在底部两排呈锯齿形排列。唯一经常出现在英文文本中的有问题的字母对是“sc”[第一个布局的底行有 ZCXV 而不是 ZXCV],这在后来的键盘中得到了修复,其中唯一有问题的常用词对.. . (2认同)

LPC*_*hip 11

为了回答这个问题,必须了解键盘的工作原理。

如果你回顾一下早期的键盘,你会发现插头上只有几个针脚,与键盘上的按键数量不同。

也就是说,如果你按下键盘上的一个键,它仍然会立即传输到计算机,没有任何延迟。那么这怎么可能呢?

键盘使用水平和垂直信号矩阵。所有键都布置在一个网格上,如键盘上所示。当您按下一个键时,它不仅会说“x”键被按下,而且会说第 3 列和第 5 行的键已被按下。这意味着最终数据行的数量不是key的数量,而只是行和列的数量(优化)。

现在,当您一次按下多个键时,问题就解决了,矩阵现在可以进入一种状态,它无法确定按下了哪个键,这就是为什么有些键盘一次只能按下 2 个键和第 3 个键的原因被忽略。

为了解决这个问题,重新设计了矩阵以减少这种情况的发生,这就是为什么有些键盘声称您可以按下 4 或 5 个键,但是如果您找到了神奇的组合,您又会再次按下 2,但发生的情况要少得多经常由于大量的试验和错误。

因为这最后还是出问题了,所以用了其他的方法来实际支持多按键,称为anti-ghosting。这里的问题是它可以通过多种方式实现,这就是为什么有些键盘给出 QEQEQE,而其他键盘则给出 QEEEE 或 EQQQQQ。

长话短说,在尝试允许一次按下多个键时,根据开发预算和使用的方法不同,不同型号一次按下多个键的行为是不同的。

较新的面向游戏的键盘会将所有按键非常快地通过 USB 发送到计算机,驱动程序可以告诉软件按下哪些键,显示 QEQEQEQE,而较旧的键仍然使用矩阵并使用硬件键,仅显示 QEEEEEEE 或 EQQQQQQ .

  • 请注意,大多数键盘仅发送“key down”和“key up”事件。重复由操作系统完成。如果您正在输入文档以查看正在发生的事情,那是错误的方法。使用键盘事件查看器。 (13认同)
  • 本质上,并非所有键盘都生而平等?作为这种不平等的结果,每个键盘的行为是不同的?当我想到,对于那些将他们的键盘宣传为“最好的游戏”键盘的公司来说,这是非常有趣的,得知这样的差异是可能的,这令人惊讶。如果我理解错了,请纠正我,但基本上取决于公司,他们的驱动程序不同,从而导致不同的行为。 (3认同)
  • 不仅仅是驱动程序,芯片等都可能不同。 (2认同)