检测C#和XNA 4.0中的多个按键
我想检测在C#和XNA4.0中是否同时按下了一组特定的键盘键。我使用以下代码执行此操作:检测C#和XNA 4.0中的多个按键,c#,keyboard,xna,state,C#,Keyboard,Xna,State,我想检测在C#和XNA4.0中是否同时按下了一组特定的键盘键。我使用以下代码执行此操作: KeyboardState keyState = Keyboard.GetState(); if(keyState.IsKeyDown(Keys.S) && keyState.IsKeyDown(Keys.K) && keyState.IsKeyDown(Keys.I)) { //Do something } 此代码检测用户是否同时按下“S”、“K”和“I”。然而
KeyboardState keyState = Keyboard.GetState();
if(keyState.IsKeyDown(Keys.S) && keyState.IsKeyDown(Keys.K) && keyState.IsKeyDown(Keys.I))
{
//Do something
}
此代码检测用户是否同时按下“S”、“K”和“I”。然而,我注意到这段代码在一台计算机(Windows8.1笔记本电脑)上运行良好,但在另一台计算机(Windows8桌面电脑)上运行不好。此外,我最初希望if语句检查用户是否同时按住P键(“S”、“K”、“I”和“P”),但当添加第四个条件(keyState.IsKeyDown(Keys.P))时,代码在两台计算机上都不起作用。为什么这段代码不能在多台机器上工作?当试图同时检测三个以上的按键时,为什么会出现故障而根本不工作?这很可能是硬件问题,而不是软件问题。根据我的经验,最常见的情况是3个键被按下,第4个键打破了几乎所有的传统键盘。该链接详细解释了这个问题,并测试了您是否真的遇到了键盘重影 因为这是一个硬件问题,所以您在代码中对此无能为力,除了重新设计它以使其适合硬件,即不需要三个向下键或不同的键 如果您真的希望此代码正常工作,请购买具有6键滚动(最多6键)或n键滚动(键盘上的所有键)的键盘。此功能意味着可以同时按下键盘上的所有键,而计算机仍能检测到所有键
哦,这是一个很好的视频,用一种非常简单的方式解释了这个问题。不同的硬件支持一次按下最多键数。对。我不知道。在这种情况下,有没有一种我可以使用的检测按键的替代方法?这不是软件问题。