11/11/11 14:32
davide94
Salve,
ho un problema con il codice .
Quando muovo il personaggio all'inizio rimane fermo e poi cammina in modo corretto se tengo premuto .
(Ovvero il problema è l'animazione del personaggio quando cammina che all'inizio resta fermo e poi cammina correttamente).
Forse non mi sono spiegato molto bene , ma avviando il programma si capisce.
Per cambiare il frame dell'animazione mi baso a seconda del tempo.
Questo è il codice fatto con NetBeans .
mediafire.com/
Secondo me o il problema è di Personaggio( o meglio metodo anime e keyPressed) oppure l'actionPerformed del MyPanel o la classe che gestisce la tastiera .
Se qualcuno riesce a comprendere il problema o a consigliarmi un'altra metodologia gliene sarei grato,grazie.
Ultima modifica effettuata da davide94 11/11/11 14:33
aaa
03/01/12 16:06
fraioveio
Prova a creare delle variabili boolean nelle quali metti true quando premi il tasto e false quando lo molli, poi fare un Thread con un ciclo che controlla le variabili.
Esempio:
public class Personaggio {
private boolean dx = false, sx = false;
public int x = 0, y = 0;
public Personaggio() {
new Thread() {
public void run() {
while(true) {
if(dx) {
x ++;
}
if(sx) {
x --;
}
try {
sleep(10);
} catch (Exception e) {}
}
}
}.start();
}
public void keyPress(KeyEvent e) {
if(e.getKeyCode() == x) {
dx = true;
}
if(e.getKeyCode() == y) {
sx = true;
}
}
public void keyRelease(KeyEvent e) {
if(e.getKeyCode() == x) {
dx = false;
}
if(e.getKeyCode() == y) {
sx = false;
}
}
}
Ovviamente da adattare al tuo codice!
Ultima modifica effettuata da fraioveio 03/01/12 16:08
aaa