Guten Abend!
Erstmal vorab:
Ich weiß, dass es zu dem Thema KeyListener schon einige Threads gibt und auch ausreichend Lektüre im Internet. Ich habe mir das auch alles angeschaut, aber es nicht hinbekommen zu lösen, oder mein Problem explizit gefunden.
Ich habe versucht, auf zwei verschiedene Arten einen KeyListener zu meinem Applet hinzuzufügen, welches immer zu dem Problem führt, dass das Spiel hängen bleib. Es handelt sich um ein 2d-Rollenspiel, in welchem man den Spieler mittels Mausklicks steuern kann.
Nun erstmal die beiden Varianten, in denen ich es mit dem KeyListener versucht habe.
1.: KeyListener in der klasse implementieren und die notwendigen Methoden überschreiben
2.: In der Init-Methode einen KeyListener hinzufügen und direkt die notwendigen Methoden überschreiben
Meine Vermutung liegt darin, dass ich (trotz Maussteuerung) keiner Klasse einen MouseListener hinzugefügt habe und ich nicht wirklich verstehe, warum ich den Spieler trotzdem so bewegen kann.
Mfg, Christian
Erstmal vorab:
Ich weiß, dass es zu dem Thema KeyListener schon einige Threads gibt und auch ausreichend Lektüre im Internet. Ich habe mir das auch alles angeschaut, aber es nicht hinbekommen zu lösen, oder mein Problem explizit gefunden.
Ich habe versucht, auf zwei verschiedene Arten einen KeyListener zu meinem Applet hinzuzufügen, welches immer zu dem Problem führt, dass das Spiel hängen bleib. Es handelt sich um ein 2d-Rollenspiel, in welchem man den Spieler mittels Mausklicks steuern kann.
Nun erstmal die beiden Varianten, in denen ich es mit dem KeyListener versucht habe.
1.: KeyListener in der klasse implementieren und die notwendigen Methoden überschreiben
Java:
public class DeluxeRPG extends Applet implements Runnable, KeyListener
[...]
@Override
public final void init() {
addKeyListener(this);
[...]
@Override
public void keyTyped(KeyEvent e) {
[...]
}
@Override
public void keyPressed(KeyEvent e) {
[...]
}
@Override
public void keyReleased(KeyEvent e) {
[...]
}
2.: In der Init-Methode einen KeyListener hinzufügen und direkt die notwendigen Methoden überschreiben
Java:
@Override
public final void init() {
this.addKeyListener(new KeyListener() {
@Override
public void keyPressed(KeyEvent e) {
[...]
}
@Override
public void keyReleased(KeyEvent e) {
[...]
}
@Override
public void keyTyped(KeyEvent e) {
[...]
}
});
Meine Vermutung liegt darin, dass ich (trotz Maussteuerung) keiner Klasse einen MouseListener hinzugefügt habe und ich nicht wirklich verstehe, warum ich den Spieler trotzdem so bewegen kann.
Mfg, Christian