Bug reported in KP :
“I can’t jump while moving backward + left or right! However the jump works when moving forward +left or right”.
Well, change your keyboard. After investigation, this is neither a DirectInput nor a Win32 problem: it’s a low-level keyboard issue. Some keyboards don’t support the key combination, period. Others, USB keyboard in particular, seem more friendly (and the bug doesn’t happen with them).
Quick test to see if your keyboard is “bad”:
- run this exe from the DirectX SDK: \Program Files\Microsoft DirectX SDK (August 2007)\Samples\C++\DirectInput\Bin\x86\Keyboard.exe
- create an Exclusive, Foreground, Immediate device
- press keys S, D and Space simultaneously.
If it says: “Data 0×1f 0×20 0×39″ you’re good, go play KP. If 0×39 is missing, you’re screwed. Like me.
…I seem to remember this wasn’t an issue on an ST, but I’ll shut up.
EDIT: this is really a low-level keyboard issue…
July 7th, 2008 at 8:10 am
I’m sure though that the ST has tens of other combos that don’t work
July 7th, 2008 at 11:28 pm
Don’t be sad, you aren’t the only developer with a cheap/bad keyboard
July 14th, 2008 at 8:07 pm
On other keyboards, like mine, the test should be “S, D, E” (this is qwerty). Or any 3-4 keys that form a square. When pressing 4 such keys, my mobo produces a buzzer beep.
But this never hindered my coding or hardcore-gaming (FPS and “King of Fighters”-like games, where in most of the time you press 3-6 keys at once). Not even when composing music with the PC keyboard on ModPlug-like interfaces.
The whole problem probably comes from cost-saving. Not only for the diodes, but for a PCB, too. Most keyboards use two cheaper plastic sheets with conductive meshes, while having the diodes requires a large (more) expensive PCB.
Meanwhile, PS/2 keyboards are much faster than their USB counterparts, in my experience.