[gameprogrammer] Re: Key Repeat problem

You could try saving the time of keypress event(for each pressed key) and send the it to the server every x seconds after the keypress event.
Also did you think about doing some sort of prediction for the client to eliminate jerky movement? With prediction I mean you do the movement in the client immediately and fix it if the server's position is different as client's(or similarly).


Cheers, Simon.

I think I tried that one. Doing it that way, you can only timestamp the keypress event (as you don't want to miss a keyreleased event for obvious reasons). However, say you set the interval for 500ms, and the keyreleased event fires (say) 10ms after the keyreleased event, and the user holds the key down constantly. What will happen is that the program will only register a keypress for 10ms every 500ms that the key is held down, leading to jerky movement. Also, unfortunately, the 10ms isn't constant, so it's not possible to set the KeyPress interval to be a fraction more than what this will be.

Steve.



Paul Smith wrote:

Maybe in your KeyPressed function store a timestamp in a static variable and the next time the function is called only pass the message on to the network server if the time elapsed is greater than a certain number of milliseconds?

On 1/19/06, *Stephen Smith* <gp@xxxxxxxxxxxxxxxxxxxxxxxx <mailto:gp@xxxxxxxxxxxxxxxxxxxxxxxx>> wrote:

    I think this problem is purely with Java on Linux, but if anyone can
    think of a workaround it would be much appreciated.

Basically, I have two functions, KeyPressed() and KeyReleased(), which
normally get called (only) when a key is pressed and then released
respectively. However, if you hold a key down when running it on
Linux,
it fires each one pretty much constantly in turn for as long as
the key
is held down. My program is a network client for my game, and I send
keypress and keyrelease signals to the server. With the above
symptoms
though, the server gets clogged up with constant signals from each
client when a single key is held down.


    It is a known "symptom" of Java under Linux, but can anyone think
    of a
    work around?

    Thanks in advance,

    Stephen






--------------------- To unsubscribe go to http://gameprogrammer.com/mailinglist.html <http://gameprogrammer.com/mailinglist.html>





--
Paul Smith
Computer programmer

paul@xxxxxxxxxxxxxxxxxx <mailto:paul@xxxxxxxxxxxxxxxxxx>







--------------------- To unsubscribe go to http://gameprogrammer.com/mailinglist.html





---------------------
To unsubscribe go to http://gameprogrammer.com/mailinglist.html


Other related posts: