Salve, premetto che di esercizi simili a questo ne è pieno il web e posso dire di averli letti quasi tutti. Pur sembrando praticamente uguale, il mio codice non funziona. Sicuramente c'è qualcosa che non riesco a capire e per cui ho bisogno di una mano.
In pratica parliamo di un'animazione. Ho quindi un frame e un pannello per il disegno. Ho inoltre due variabili, una per le coordinate x e una le y. Per ogni coppia (x,y) ho un metodo che disegna, sul mio pannello, una pallina. Ho, inoltre, una variabile "char direzione= 'D' ". Questa è inizializzata verso destra e poi, a seconda dell'inserimento da tastiera, cambia valore e quindi cambia anche il verso del movimento. Adesso, ancor prima di inserire l'input da tastiera, ho avviato il mio programma e, avendo inizializzato la direzione verso destra, dovrei avere che la pallina scorre in questo verso sul mio pannello. Eppure questa è ferma immobile. Non riesco a capire quale sia il problema, allego codice.
public void disegna() {
BoardPanel pannello = getBoardPanel();
x = (int)(Math.random() * righe);
y = (int) (Math.random() * colonne);
pannello.drawOval(x, y, Color.BLUE);
pannello.repaint();
}
}
public void move() {
if(direzione == 'D') {
y += size;
x += size;
}
}
@Override
protected void animateInit() {
disegna();
setAnimationDelay(500);
}
@Override
protected void animateNext() {
BoardPanel pannello = getBoardPanel();
move();
pannello.repaint();
}
Qualcuno sa aiutarmi? Sono tre giorni che non faccio altro che sistemare questa funzione, invano