Java Gloop BlueJ ein Spiel auf Knopfdruck starten?

1 Antwort

Das heißt, du möchtest die Anwendung so lange blocken, bis der Spieler mit dem Tastendruck das Spiel startet.

Wie du dich sicherlich erinnerst, habe ich dir bei deiner letzten Frage die game loop vorgestellt. Nun könnte noch eine Enumeration definiert werden, die die einzelnen Modi definiert, in denen sich das Spiel gerade befindet.

Die Schleife selbst bewirkt, das das Programm auf eine Aktion des Spielers wartet. So lange wird mit jedem Durchlauf das Menü neu gezeichnet. Erst der Druck auf die Tab-Taste ändert den Zustand und mit dem nächsten Schleifendurchlauf kann das Spielbrett selbst gezeichnet werden (else-Zweig).

enum GameStatus { PLAYING, WAITING, /* ... */ }

GameStatus gameStatus = GameStatus.WAITING;

while (true) {
  if (gameStatus == GameStatus.WAITING && dieTastatur.tab()) {    
    gameStatus = GameStatus.PLAYING;
  }
  else if (gameStatus == GameStatus.WAITING) {
    // render menu ...
  }
  else {
    // render game components, etc. ...
  }
}