Archived

This topic is now archived and is closed to further replies.

Haplo

Simultaneous Keyboard Input in C++

Recommended Posts

I am not much of a DOS or Windows programmer, but I do know that by using, DirectX's DirectInput this can be accomplished. Because In DirectInput you just check wether or not a key is pressed at a certain time or not.

NOTE: Keyboards has a limit to how meny keys that can be pressed at the same time. Pressing four to five keys at the same time should be no problem however.

Share this post


Link to post
Share on other sites
What API did you use to write your PONG clone?

Not 100% sure about this (I've never actually done game code in DOS), but if it isn't DirectX, couldn't you just write code to allocate time slices to each player for input instead of 'locking' the game while a key is pressed?

I.E. Write a piece of code to buffer the keyboard input and then just get the last key, process it and move onto the next, then graphics, update etc., repeating until the game is over.

This is essentially how I've written code to work over networks, so I assume it'd be similar.

Hope this helped.

[This message has been edited by Stark (edited December 14, 1999).]

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Why oh why is the PC keyboard so pathetically crap? I coded half my game (four player split screen) before I realised this limitation. The Amiga didn't have this problem.. It just winds me up that you pay £1000+ for a PC and get a £2.99 keyboard with it.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
If you are using dos then all you have to do is steal the keyboard interrupt. Every time you press a key the keyboard interrupt is called and you get the result from getch(), or whatever function you are using. If you write your own handler, using scan codes, make and break codes you can handle up to about 12 simultaneous keys. Go to www.delorie.com and check out the docs on djgpp for information. You'll have to save the old interrupt vector, and replace it with the new vector. Andre La Moth's books also go over this process in great detail.

Share this post


Link to post
Share on other sites
I'm a student in high school and I just finnished an independant project of mine for my Computer Science class. I used learnt C++ and made Pong, however it's only one player because I don't know how to read in simultaneous keyboard input. The problem I ran into was that if player1 pushed up to move his paddle upwards and then player2 did the same, player2 would lock out player1 and only player2's paddle would move. I asked my teacher and searched the internet to find an example in C or C++ but I came up dry. I would really appreciate it if anyone could point me in the right direction because I really want to make the game as good as I can possibly make it.

Share this post


Link to post
Share on other sites
Hmm... actually does anyone know how to "fix" this crumpy new keyboards and make over 10 key simulated presses possible ? I just know that in some older keyboards this worked better because those old ones were nice, compared to this "more cheap" ones... (yes, they made some "fixes" for new keyboards to get lower prices.... darn).

Share this post


Link to post
Share on other sites