接受更多同步键盘输入

时间:2011-01-03 02:44:23

标签: keyboard user-input keyboard-events simultaneous

有时,普通的电脑键盘只能同时接受用户输入到某个键。我有一个罗技键盘,可以同时接受最多3-4次按键。如果您按下此键盘的4个以上键,计算机将不再接受任何输入。它还取决于键盘的某些区域。某些位置允许按下更多键(如箭头键),而某些位置允许您仅按1-2键。这也是键盘与键盘的不同之处。一些较旧的键盘只能接受1-2个键。

这对于通常的办公室工作来说不成问题,但涉及到游戏。例如,想象一下平台游戏,你必须同时跳跃,攻击和控制方向。这意味着几次按键,一些键盘不能接受这种同时输入。但是,我已经在几款游戏中尝试了这一点,并且可能的键盘输入数量似乎也不同。因此,我们有两个问题:

  1. 键盘具有不同的同时输入量。
  2. 有些游戏可以接受比其他游戏更多的键盘输入。
  3. 起初,我认为这只是硬件问题,但为什么某些程序的行为有所不同?为什么某些程序可以接受比其他程序更多的键盘输入?那么我们如何编写程序来接受更多的键盘输入?

3 个答案:

答案 0 :(得分:9)

来自其他论坛的报价完全不正确......

键盘始终使用矩阵,键膜/微型开关上的8x8排列将覆盖64个键。将电源向下发送到一个公共行并拾取哪个列(如果有的话)电源一次连接到一个 - 它只是非常快速地扫描。控制器芯片可以根据需要轻松确定任意数量的密钥(包括所有密钥),而不会产生任何性能损失(无论如何,无论是向上还是向下都要轮询每个密钥)。

然后通过键盘将该信息序列化以通知主机发生了哪些事件(限制因素是芯片#1的设计以及它想要放在总线#2上的流量)。它们被驱动程序转换为适当的OS事件(限制因子#3)。这些事件然后由应用程序处理,而这些应用程序可能对它们跟踪的键数量有自己的限制(#4)。

有很多事情要发生,但是从60年左右开始,它们每个键+地面都没有使用过1根电线。如果你不认为矩阵可以足够快地扫描 - 看看任何液晶/ LED屏幕,那就是发生相同的矩阵,只是反过来。

答案 1 :(得分:6)

如果您想要修复此问题,则需要购买价格昂贵的键盘。

名为 GlovePie 的程序允许来自不同来源的可编程输入,可以解决此问题。 GlovePie下载页面Here.~

例如,我正在开发一款RPG游戏,我的笔记本电脑的键盘无法检测到Run + Up + Left(东北运行)的组合。但是,如果我插入我的USB Logitech控制器并使用GlovePie将这些精确的键盘键(向上,向左和B [运行])映射到控制器的按钮,我可以执行命令以运行东北没有问题。

至于你的问题,我不确定为什么程序对键盘输入有不同的反应,但它可能与如何检测你的输入。例如:基于Java的游戏可能检测到DirectInput (从输入/输出设备发送的签名),而仿真器(如用于PC的SNES仿真器ZSNES)可能只检测正在使用的“Up”键的实例。    另一个输入仿真程序AutoHotkey无法控制基于java的游戏,因为它不使用游戏检测到的相同形式的输入(它不使用Java的DirectInput)。

所以,为了获得更多的按键,我会使用一个带有GlovePie的USB控制器。

引自其他论坛:      “这不是一个真正的问题(技术上)。解决方案非常简单,但增加了键盘的成本。考虑这个简单的问题:你有64个键。如果你想要区分每个可能的同时键,你需要多少线答案:65,一个常见,每个键一个。但是,如果你把钥匙安排在一个8x8键的阵列中,你只需要16根线,8根用于列,8根用于行。这减少了引脚数量。键盘控制器芯片让键盘的制作成本低得多。我见过的所有键盘都是以这种方式制作的。“

答案 2 :(得分:4)

我发现了一篇很好的文章Keyboard Ghosting Explained!,它解释了我在这个问题上需要知道的所有内容。它有一个测试区域,所以我可以找到我的笔记本电脑上哪些键组合不能很好地一起玩。