Keyboard States Are Not Correct For 3+ Keys Held Down (Left, Up, Space)

Anyone else have this problem?
If I do a basic keystate check - it won’t register more than 2 keys being held down at once:

kb = Keyboard.GetState();
if (kb.IsKeyDown(Keys.Left) && kb.IsKeyDown(Keys.Space)) g.output(20,100,"left + space");
if (kb.IsKeyDown(Keys.Up) && kb.IsKeyDown(Keys.Space))   g.output(20,110,"up + space");
if (kb.IsKeyDown(Keys.Left) && kb.IsKeyDown(Keys.Up))    g.output(20,120,"left + up");            
if (kb.IsKeyDown(Keys.Up) && kb.IsKeyDown(Keys.Left) && kb.IsKeyDown(Keys.Space)) g.output(20,130,"left + up + space");

So… 2 keys combos always work with all 3 keys but if I hold all 3 down - it’ll only register 2 of the 3 keys as being held down.
(had a problem with numpad too - could be SDL related)

Maybe I should make a separate cross-platform input class?

More information:
Found out it doesn’t do this for RIGHT+up+space (only LEFT+up+space or Left+Down+Space or Right+Down+Space)
Also noticed left+up+space causes windows to beep after a couple seconds.
Still puzzled… but at least it’s a clue that Windows (maybe) has something to do with it but it does still do this in full-screen exclusive-mode.

Test your hardware with this:

1 Like

Yes, thankyou - that solved it!
Just had to switch keyboards :slight_smile:

2 Likes