7

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

这对于通常的办公室工作没有问题,但在游戏方面。例如,想象一个平台游戏,你必须同时跳跃、攻击和控制方向。这意味着多次按键,并且一些键盘不能接受这样的同时输入。但是,我在几款游戏上都试过了,可能的键盘输入量似乎也不同。因此,我们有两个问题:

  1. 键盘有不同数量的同时输入。
  2. 有些游戏可以接受比其他游戏更多的键盘输入。

起初,我以为这只是硬件问题,但为什么有些程序的行为不同呢?为什么有些程序可以接受比其他程序更多的键盘输入?那么我们如何编写程序来接受更多的键盘输入呢?

4

3 回答 3

9

其他论坛的引用完全不正确...

键盘始终使用矩阵和 8x8 排列的键膜/微动开关将覆盖 64 个键。向公共行发送电源并一次拾取哪一列(如果有)电源连接到一个 - 它只是非常快速地扫描。控制器芯片可以轻松地一次确定尽可能多的按键(包括所有按键),而不会影响任何性能(无论如何,它必须轮询每个按键,向上或向下)。

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

发生了很多事情,但自 60 年代以来,他们没有使用每个键 + 接地线 1 根线。如果您认为矩阵的扫描速度不够快 - 查看任何 lcd/led 屏幕,这就是相同的矩阵正在发生,只是相反。

于 2011-02-15T11:00:41.533 回答
6

如果你想解决这个问题,你需要购买更昂贵的键盘。

一个名为GlovePie的程序允许来自不同来源的可编程输入,并且可以解决这个问题。GlovePie下载页面在这里~

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

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

因此,为了获得更多密钥,我会使用运行 GlovePie 的 USB 控制器。

从另一个论坛引用: “这不是一个真正的问题(技术上)。解决方案非常简单,但增加了键盘的成本。考虑这个简单的问题:你有 64 个键。如果你想的话,你需要多少根线区分每一个可能的同时按键。答案:65,一个通用键,每个键一个。但是,如果将按键排列成一个 8x8 键的阵列,则只需要 16 根线。8 根用于列,8 根用于行。这样可以减少”

于 2011-02-08T20:55:00.217 回答
4

我找到了一篇很好的文章键盘重影解释!,这解释了我在这个问题上需要知道的一切。它有一个测试区域,所以我可以找到我笔记本电脑上的哪些按键组合不能很好地配合使用。

于 2014-09-25T21:09:39.517 回答