PDA

Visualizza la versione completa : [JAVA] Far muovere un'immagine


mhidy
12-05-2005, 17:55
Ciao a tutti, vorrei far muovere un'immagine, come in un giochino, in tutte le direzioni. Per farlo implemento il metodo
"public void keyPressed(KeyEvent e){}" con il codice, limitando il campo di azione alle dimensioni massime della finestra in cui voglio visualizzare l'immagine. L'immagine riesco a farla muovere, però ogni volta che spingo, per esempio "UP", fa uno scattino in su, si ferma, e poi continua normalmente. Così per tutte le direzioni. Vorrei in pratica eliminare quella specie di momento di pausa. Questo è il mi codice:

public void keyPressed(KeyEvent e)
{
int tasto = e.getKeyCode();

switch (tasto)
{
case (KeyEvent.VK_UP):
y -= 10;
if (y < 0)
{
y = 0;
}
break;

case (KeyEvent.VK_DOWN):
y += 10;
if ((y+imgHeight) > height)
{
y = (height - imgHeight);
}
break;

case (KeyEvent.VK_LEFT):
x -= 10;
if (x < 0)
{
x = 0;
}
break;

case (KeyEvent.VK_RIGHT):
x += 10;
if ((x+imgWidth) > width)
{
x = (width - imgWidth);
}
break;
}
repaint();
}

P.S. siate buoni.... :)

dekdek
12-05-2005, 20:43
Il problema e' che devi innescare il movimento quando il tasto viene premuto la prima volta e disinnescarlo quando viene sollevato.
Dico la prima volta, perche' il tuo sistema di movimento si basa sulla ripetizione automatica dei tasti.
Quindi per esempio, il tuo programma non funziona sul mio PC dove la tengo disabilitata.
Cerca nel forum perche' postai del codice per risolvere esattamente questo problema.
Cmq la soluzione che scelsi era di usare un timer (javax.swing.Timer) che magari per te non e' la migliore, pero' puo' darti un'idea su come agire.

mhidy
13-05-2005, 17:27
Grazie.. caso mai ti faccio sapere
ciao :ciauz:

Loading