Allora, innanzitutto anticipo che non posso postare il codice del programma che mi ha dato problemi perché purtroppo è andato perduto.

Avevo provato a scrivere in Java il semplice gioco del "muretto" a due giocatori, da un lato uno si muoveva con due tasti e dall'altro lato l'altro giocatore si muoveva con altri due tasti.

Se un giocatore teneva premuto un tasto per lo spostamento il programma continuava ad intercettare l'evento (giustamente) e nel frattempo, se l'altro giocatore provava a premere un tasto, il programma se ne fregava.

Esempio: giocatore uno tiene premuto SU e si sposta, finché non lo rilascia il giocatore due può premere quello che vuole che il gioco se ne frega beatamente.

Però ho anche notato una cosa: se i due giocatori premevano contemporaneamente uno dei loro tasti e li tenevano premuti, entrambi si spostavano.

C'è qualcosa che mi sfugge... come mai accade questo? Che differenza c'è fra queste due situazioni? Come dovrei organizzare il programma per ovviare al problema (in linea generale)?

Grazie anticipatamente e spero di essermi spiegato anche senza il sorgente.