Java Gloop BlueJ ein Spiel auf Knopfdruck starten?
Hallo, ich programmiere ein Spiel, und möchte nun quasi einen Startbildschirm machen.
Ich habe soweit alles gemacht, bis auf dass ich es nicht hinkriege, dass das Spiel auf Taste Tab startet. Falls ich es mit while(!dieTastatur.tab()){
Menu.start();
}
mache, startet das Spiel erst, wenn tab gedrückt bleibt. was ich machen will, ist dass wenn ich 1 mal tab drücke das Spiel komplett startet. Heisst, dass Spiel soll erst stehen, das Menü halt anzeigen, und dann auf Knopf druck das Menü weg machen und das Spiel starten
Danke für die Hilfe :)
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. ...
}
}