PDA

Visualizza la versione completa : [Java] Problema con evento KeyReleased


lelefante
19-12-2002, 13:37
Salve a tutti, sto scrivendo un semplice videogame con le swing e vorrei impostare la potenza di un omino con il metodo classico della barra di spazio.
Quando il giocatore preme la barra si apre una finestra con una JProgressBar che aumenta e diminuisce il proprio valore, fino a che la barra di spazio non viene rilasciata.
Io gestisco la cosa con gli eventi keyPressed e keyReleased:
quando ricevo il primo keyPressed parte la barra, quando ricevo un keyReleased interrompo la corsa della barra, prelevo il valore e lo imposto come potenza di tiro.
Sotto windows tutto funziona bene, ma sotto linux ho un grosso problema: quando un tasto viene premuto ricevo una continua successione di eventi keyPressed e keyReleased, anche se in realta' non e' stato rilasciato nessun tasto, e questo mi manda a pallino il tutto. Infatti al primo keyReleased ricevuto la barra interrompe la propria corsa e imposta la velocita' dell'omino troppo bassa, non fa mai intempo ad arrivare a fine corsa.
Qualcuno a qualche idea per risolvere il problema, senza farmi cambiare tutta l'impostazione di gioco?

lelefante
19-12-2002, 23:56
Ebbene... sembra che questo comportamento sia un bug. Il problema deriva dal fatto che l'evento keyReleased viene scatenato da codice nativo, e quindi l'indipendenza dalla piattaforma non e' garantita.
Mi sa tanto che dovro' cambiare metodo.

l.golinelli
20-12-2002, 12:44
Fai che battendo sulla barra spaziatrice parte la JProgressBar e ribattendo la si ferma...

:ciauz:

lelefante
20-12-2002, 15:03
Penso che dovro' fare una cosa simile, ma non mi piace granche', peccato.

Loading