Keyboard 接受更多的同时键盘输入

Keyboard 接受更多的同时键盘输入,keyboard,user-input,keyboard-events,simultaneous,Keyboard,User Input,Keyboard Events,Simultaneous,有时,普通的计算机键盘只会同时接受用户输入的某个键。我有一个logitech键盘,可以同时接受3-4次按键。如果您在此键盘上按4个以上的键,计算机将不接受任何更多的输入。它还取决于键盘的某些区域。有些位置允许按更多键(如箭头键),而有些位置只允许按1-2键。这也因键盘而异。一些旧键盘最多只能接受1-2个键 这对于一般的办公室工作来说并没有问题,但当涉及到游戏时。例如,想象一个平台游戏,你必须同时跳跃、攻击和控制方向。这意味着几次按键,一些键盘不能同时接受这样的输入。然而,我已经在几个游戏中尝试过

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

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

  • 键盘有不同数量的同时输入
  • 一些游戏可以接受比其他游戏更多的键盘输入

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

    如果你想修复这个问题,你需要购买一个更昂贵的键盘

    名为GlovePie的程序允许从不同来源进行可编程输入,可以解决此问题。GlovePie下载页

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

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

    所以,为了得到更多的钥匙,我会使用一个运行GlovePie的USB控制器

    引用另一个论坛的话:
    “这其实不是一个问题(技术上)这个解决方案很简单,但是增加了键盘的成本。考虑这个简单的问题:你有64个键。如果你想区分每一个可能同时的按键,你需要多少根线。答案:65,一个共同的,一个键。但是,如果你把这些键排列成一个带有8x8键的数组,你只需要16根线。列和8表示行。这减少了键盘控制器芯片上的引脚数量,使键盘的生产成本大大降低。我见过的所有键盘都是这样生产的。”

    另一个论坛的引用完全不正确…


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

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


    有很多事情要做,但是他们从60年代开始就没有在每个键+地上使用过一根电线。如果你认为矩阵扫描速度不够快,看看任何一个lcd/led屏幕,情况都是一样的,正好相反。

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

    谢谢你的链接,这对解释和演示非常有用。链接已失效。链接腐化使这个答案无效。Web.Archive.org可以修复它!(这里有一个有用的小测试应用程序——它通常没有“最大3”那么简单——我通常可以得到6个键加上Shift/Ctrl,但最多2个箭头,某些numpad组合可以做3个键,而其他组合只能做2个键——1/2/3可以,0/1/3可以,0/1/2或0/2/3不注册第三个键!)“一次确定任意多个键(包括所有人)这个陈述是完全错误的,因为在回答的信息中。谢谢你的反馈- Areve的答案是对这里所涵盖的许多限制因素的实际演示。没有一个矩阵可以在没有问题的情况下投票超过8x8或更多的开关的事实,考虑数据量。对于每秒1920x1080x30x8x3x100个二进制事件的1080p/100Hz显示器,您需要进行移位。我知道矩阵化允许发送或发送的数据量惊人地增加。在输出时,从来没有问题,因为在LCD中,它在任何给定时间选择要显示的列,并且从不同时选择两列。在inp上但是,计算机无法选择用户同时按下的列/行