Je suis sur une petite application avec un perso que si déplace au clavier.
Mon problème ce situe au inveau du addKeyListener, en effet je peut taper au clavier une seule fois sur 's' (ou ça marche très bien) ensuite plus rien...
Voici le code (incomplet) :
public class Fenetre extends JFrame implements KeyListener{
public Fenetre() {
super("Projet prog, première version" );
this.setLocation(50,50);
this.setSize(800, 600);
this.getContentPane().setLayout(null);
this.gestion();
// keyText est un JTextField
keyText.addKeyListener(this);
}
private void gestion() {
//xPos et yPos> position du perso
this.graphisme(xPos, yPos);
keyText.addKeyListener(this);
}
private void graphisme(int x, int y) {
this.getContentPane().setLayout(null);
this.addPerso(x, y);
this.addClavier();
//addPlateau et addFond ajoute 2 images en fond
this.addPlateau(200);
this.addFond();
}
private void addClavier() {
keyText.setBounds(200,400,0,0);
this.getContentPane().add(keyText);
}
private void addPerso(int x, int y) {
perso.setBounds(x, y, 50, 50);
this.getContentPane().add(perso);
}
public void keyTyped(KeyEvent input) {
char key = input.getKeyChar();
System.out.println(key);
if (key == 's' {
yPos = yPos + 20;
System.out.println(yPos);
this.gestion();
}
}
avec ce code le perso se déplace mais la posution augmente de 20 puis 40 lors du 2ième appuis sur 's' puis 80 etc...
En fait le addKeyListener je sais pas trop comment le mettre, si j'en mais un seul je ne peut appuyer qu'une seule fois sur 's' ...
Merci de m'éclairer