Hallo zusammen,
ich arbeite derzeit an einem kleinem 2D-Spiel bzw. Applet.
Man bewegt eine Spielfigur mittels Pfeiltasten bis zu ihrem Tod und kann danach einen neuen Versuch starten.
Nun funktioniert der KeyListener nach dem ersten "Play again"-Button-drücken nicht mehr.
Hier ein Auszug aus der Hauptklasse:
AppMain.class
Wie gesagt, am Anfang klappt es, bis man mit dem Playagain-Button die restart()-Funktion aufruft.
Der Code ist schon etwas hässlich, hab schon ne Menge versucht.
MfG
ich arbeite derzeit an einem kleinem 2D-Spiel bzw. Applet.
Man bewegt eine Spielfigur mittels Pfeiltasten bis zu ihrem Tod und kann danach einen neuen Versuch starten.
Nun funktioniert der KeyListener nach dem ersten "Play again"-Button-drücken nicht mehr.
Hier ein Auszug aus der Hauptklasse:
AppMain.class
Java:
public void init() {
setSize(480, 800);
setFocusable(true);
bg1 = new Background(0, 0, this);
bg2 = new Background(0, 800, this);
platformhelper = new PlatformHelper(this);
platformhelper.createInitialPlatforms();
spieler = new Spieler(this);
gameKL = new GameKeyListener(spieler);
addKeyListener(new GameKeyListener(spieler));
System.out.println("keylisteners_init:"+getKeyListeners());
panel = new AppPanel(this, spieler, platformhelper);
panel.setLayout(null);
add(panel);
this.setContentPane(panel);
state = GameState.Running;
}
[...]
public void restart() {
setGameSpeed(-2);
bg1 = new Background(0, 0, this);
bg2 = new Background(0, 800, this);
platformhelper = new PlatformHelper(this);
platformhelper.createInitialPlatforms();
state = GameState.Running;
spieler = new Spieler(this);
removeKeyListener(gameKL);
gameKL = new GameKeyListener(spieler);
addKeyListener(new GameKeyListener(spieler));
System.out.println("keylisteners_restart:"+getKeyListeners());
panel = new AppPanel(this, spieler, platformhelper);
panel.setLayout(null);
this.setContentPane(panel);
paintComponents(panel.getGraphics());
}
Wie gesagt, am Anfang klappt es, bis man mit dem Playagain-Button die restart()-Funktion aufruft.
Der Code ist schon etwas hässlich, hab schon ne Menge versucht.
MfG