Kar*_*arl 6 keyboard user-input simultaneous keyboard-events
有时,普通的计算机键盘只能同时接受用户输入到某个键.我有一个罗技键盘,可以同时接受最多3-4次按键.如果您按下此键盘的4个以上键,计算机将不再接受任何输入.它还取决于键盘的某些区域.某些位置允许按下更多键(如箭头键),而某些位置允许您仅按1-2键.这也是键盘与键盘的不同之处.一些较旧的键盘只接受1-2个键.
对于通常的办公室工作来说这不是问题,但是涉及到游戏.例如,想象一下平台游戏,你必须同时跳跃,攻击和控制方向.这意味着几次按键,一些键盘不能接受这种同时输入.但是,我已经在几款游戏中尝试了这一点,并且可能的键盘输入数量似乎也不同.因此,我们有两个问题:
起初,我认为这只是硬件问题,但为什么有些程序表现不同?为什么某些程序可以接受比其他程序更多的键盘输入?那么我们如何编写程序来接受更多的键盘输入呢?
来自其他论坛的报价完全不正确......
键盘总是使用矩阵,键膜上的8x8排列/微型开关将覆盖64个键.将电源向下发送到一个公共行并拾取哪个列(如果有的话)电源一次连接到一个 - 它只是非常快速地扫描.控制器芯片可以根据需要一次轻松确定任意数量的键(包括所有键),而不会产生任何性能损失(它必须无论如何都要向上或向下轮询每个键).
然后,键盘将该信息序列化,以通知主机发生了哪些事件(限制因素是芯片#1的设计和它想要放在总线#2上的流量).它们由驱动程序转换为适当的OS事件(限制因子#3).然后这些事件由应用程序处理,而这些应用程序可能对它们跟踪的键数量有自己的限制(#4).
有很多事情要发生,但是从60年左右开始,它们每个键+地面都没有使用过1根电线.如果你不认为矩阵可以足够快地扫描 - 看看任何液晶/ LED屏幕,这是相同的矩阵发生,只是反过来.
如果你想要这个固定你需要购买一个昂贵的键盘.
名为GlovePie的程序允许来自不同来源的可编程输入,并可以解决此问题.GlovePie下载页面.~
例如,我正在开发一款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根用于行.这减少了键盘控制器芯片上的引脚数量使得键盘的制作成本更低.我见过的所有键盘都是以这种方式制作的."
小智 5
我发现一篇好文章《键盘重影解释》!,这解释了我在这个问题上需要知道的一切。它有一个测试区域,这样我就可以找到我的笔记本电脑上哪些按键组合不能很好地配合使用。
| 归档时间: |
|
| 查看次数: |
23644 次 |
| 最近记录: |