Endscreen fertiggestellt, nur noch nicht eingebungen - Button-Clicks existieren

This commit is contained in:
Mats Pape 2022-01-18 14:22:01 +01:00
parent 380d469010
commit a348fb03a5

View File

@ -64,12 +64,13 @@ public class HappyBirdMain extends Application {
private final Button backMenuButton = new Button(); private final Button backMenuButton = new Button();
private final Button restartGameButton = new Button(); private final Button restartGameButton = new Button();
private final Button personalHighscoresButton = new Button ("YOUR SCORES"); private final Button personalHighscoresButton = new Button ("YOUR SCORES");
private final Button backEndscreenButton = new Button("ZURÜCK");
/*Buttons in Arrays speichern*/ /*Buttons in Arrays speichern*/
private final Button[] buttons = {startButton, highscoresButton, settingsButton, startGameButton, menuButton, pauseButton, continueButton, settingsButtonPause, menuButtonPause, backButtonPause, backMenuButton, restartGameButton, personalHighscoresButton}; private final Button[] buttons = {startButton, highscoresButton, settingsButton, startGameButton, menuButton, pauseButton, continueButton, settingsButtonPause, menuButtonPause, backButtonPause, backMenuButton, restartGameButton, personalHighscoresButton, backEndscreenButton};
private final Button[] pauseButtons = {continueButton, settingsButtonPause, menuButtonPause, backButtonPause}; private final Button[] pauseButtons = {continueButton, settingsButtonPause, menuButtonPause, backButtonPause};
private final Button[] backgroundButtons = {background1, background2}; private final Button[] backgroundButtons = {background1, background2};
private final Button[] endscreenButtons = {backMenuButton, restartGameButton, personalHighscoresButton}; private final Button[] endscreenButtons = {backMenuButton, restartGameButton, personalHighscoresButton, backEndscreenButton};
/*Textfelder erstellen und zuweisen*/ /*Textfelder erstellen und zuweisen*/
private final TextField name = new TextField(); private final TextField name = new TextField();
@ -980,6 +981,13 @@ public class HappyBirdMain extends Application {
"-fx-alignment: center;"); "-fx-alignment: center;");
} }
/***
* public void generateEndScreen() generiert den Endscreen - sobald das Spiel beendet ist
* (man verloren hat). Es werden die Punkte des Spielers angezeigt, und es bestehen die Möglichkeiten,
* das Spiel neu zu starten
* das zum Hauptmenü zurückzukehren
* sich seine persänlichen Highscores anzeigen zu lassen
*/
public void generateEndScreen() { public void generateEndScreen() {
endScreenFormating(); endScreenFormating();
/*Name und Highscores ausblenden, Pause-Button ausblenden*/ /*Name und Highscores ausblenden, Pause-Button ausblenden*/
@ -990,12 +998,13 @@ public class HappyBirdMain extends Application {
/**/ /**/
endScreen.setVisible(true); endScreen.setVisible(true);
endScreen.getChildren().add(currentScoreEndscreenLabel);
currentScoreEndscreenLabel.setVisible(true);
endScreen.getChildren().add(endScreenHeadline); endScreen.getChildren().add(endScreenHeadline);
endScreenHeadline.setVisible(true); endScreenHeadline.setVisible(true);
endScreen.getChildren().add(currentScoreEndscreenLabel);
currentScoreEndscreenLabel.setVisible(true);
/* Buttons einfügen */ /* Buttons einfügen */
int yPosition = 200; int yPosition = 200;
for (Button button : endscreenButtons) { for (Button button : endscreenButtons) {
@ -1006,7 +1015,7 @@ public class HappyBirdMain extends Application {
button.setVisible(true); button.setVisible(true);
} }
pane.getChildren().add(endScreen); pane.getChildren().add(endScreen);
backEndscreenButton.setVisible(false);
/* Click-Events für die Buttons */ /* Click-Events für die Buttons */
backMenuButton.setOnAction(event -> backMenuButtonClick()); backMenuButton.setOnAction(event -> backMenuButtonClick());
personalHighscoresButton.setOnAction(event -> personalHighscoresButtonClick()); personalHighscoresButton.setOnAction(event -> personalHighscoresButtonClick());
@ -1029,15 +1038,60 @@ public class HappyBirdMain extends Application {
} }
/***
* die Funktion restartGameButtonClick() startet das Spiel neu
*/
private void restartGameButtonClick() { private void restartGameButtonClick() {
pane.getChildren().remove(endScreen); pane.getChildren().remove(endScreen);
startGameButtonClick(); startGameButtonClick();
} }
/***
* personalHighscoresButtonClick() zeigt bei Drücken des Highscore-Buttons im Endscreen
* die persänlichen besten 5 Scores an
*/
private void personalHighscoresButtonClick() { private void personalHighscoresButtonClick() {
/* alle Buttons ausblenden */
for(Button button : endscreenButtons) {
button.setVisible(false);
}
/* Back-Button einblenden */
backEndscreenButton.setVisible(true);
/* Überschrift ändern */
endScreenHeadline.setText("YOUR HIGHSCORES");
/* Highscore ausblenden */
currentScoreEndscreenLabel.setVisible(false);
/* Highscore-Label (Hintergrund) formatieren und einfügen */
highscoreMenuLabel.setLayoutX(275);
highscoreMenuLabel.setLayoutY(225);
highscoreMenuLabel.setPrefHeight(300);
highscoreMenuLabel.setPrefSize(250, 250);
highscoreMenuLabel.setVisible(true);
endScreen.getChildren().add(highscoreMenuLabel);
/* Highscores des Spielers einfügen */
String personalBestScores = calculatePersonalHighscores();
highscoreMenuLabel.setText(personalBestScores);
/* Zurück-Funktion in den Endscreen */
backEndscreenButton.setOnAction(event -> {
endScreenHeadline.setText("GAME OVER");
for(Button button : endscreenButtons) {
button.setVisible(true);
}
currentScoreEndscreenLabel.setVisible(true);
highscoreMenuLabel.setVisible(false);
backEndscreenButton.setVisible(false);
});
} }
/***
* backMenuButtonClick() ruft aus dem Endscreen das Hauptmenü auf
*/
private void backMenuButtonClick() { private void backMenuButtonClick() {
pane.getChildren().remove(endScreen); pane.getChildren().remove(endScreen);
generateMenueScene(); generateMenueScene();