Oppure

Loading
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