我的问题适合我的孩子年龄,当我有一个新游戏要玩时,我印象非常深刻。
游戏能够看到超过 4,6 个键并做出反应,有时同时按下 8 个键。这怎么可能?这个有限制吗?或者如果我一直按“a,s,d,f,u,v,shift,0,uparrow,rightcltr,return and backspace”,程序可以“读取它”吗?一些关于它的介绍(在 C、bashscript、javascript 或 phyton 中)将不胜感激。感谢您在这里所做的任何努力。
我的问题适合我的孩子年龄,当我有一个新游戏要玩时,我印象非常深刻。
游戏能够看到超过 4,6 个键并做出反应,有时同时按下 8 个键。这怎么可能?这个有限制吗?或者如果我一直按“a,s,d,f,u,v,shift,0,uparrow,rightcltr,return and backspace”,程序可以“读取它”吗?一些关于它的介绍(在 C、bashscript、javascript 或 phyton 中)将不胜感激。感谢您在这里所做的任何努力。
如果我们说的是 Windows,GetKeyboardState () 将 256 个虚拟键的状态复制到指定的缓冲区。
BYTE keys[256];
if(GetKeyboardState(keys))
{
//check if A key is pressed
if((keys[VK_A]&0xF0) && !(prevKeys[VK_A]&0xF0))
{
DoAPressed();
}
//check if S key is pressed too
if((keys[VK_S]&0xF0) && !(prevKeys[VK_S]&0xF0))
{
DoSPressed();
}
// the same goes for all keys you want to check
}
您当然可以通过跟踪按键按下时发生的事件和释放按键时发生的单独事件来对多个同时按键做出反应。例如,在 X11 中,这些事件是KeyPress 和 KeyRelease,而在 Web 浏览器中,它们是 KeyDown 和 KeyUp Javascript 事件。但我想你会发现大多数键盘对可以同时电检测多少个按键都有物理限制,所以你的例子“a,s,d,f,u,v,shift,0,uparrow,rightcltr, return 和 backspace" 可能是太多的键。