Aktuelle Version
This commit is contained in:
parent
c6bf25bb6f
commit
bdd1c68ab9
@ -1,58 +1,79 @@
|
|||||||
package com.example.happy_bird;
|
package com.example.happy_bird;
|
||||||
|
|
||||||
import javafx.application.Application;
|
import javafx.application.Application;
|
||||||
import javafx.event.ActionEvent;
|
|
||||||
import javafx.event.EventHandler;
|
|
||||||
import javafx.fxml.FXMLLoader;
|
|
||||||
import javafx.geometry.Insets;
|
|
||||||
import javafx.geometry.Pos;
|
|
||||||
import javafx.scene.Scene;
|
import javafx.scene.Scene;
|
||||||
import javafx.scene.control.Button;
|
import javafx.scene.control.Button;
|
||||||
import javafx.scene.control.Label;
|
import javafx.scene.control.Label;
|
||||||
import javafx.scene.control.TextField;
|
|
||||||
import javafx.scene.control.Slider;
|
import javafx.scene.control.Slider;
|
||||||
import javafx.scene.image.*;
|
import javafx.scene.control.TextField;
|
||||||
import javafx.scene.image.Image;
|
import javafx.scene.image.Image;
|
||||||
|
import javafx.scene.image.ImageView;
|
||||||
|
import javafx.scene.input.KeyCode;
|
||||||
import javafx.scene.layout.*;
|
import javafx.scene.layout.*;
|
||||||
import javafx.scene.text.TextAlignment;
|
import javafx.scene.text.TextAlignment;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
|
|
||||||
import java.awt.*;
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
public class HappyBirdMain extends Application {
|
public class HappyBirdMain extends Application {
|
||||||
|
|
||||||
private Pane pane = new Pane();
|
/*Panes erstellen und zuweisen*/
|
||||||
private Scene scene = new Scene(pane, 800, 700);
|
private final Pane pane = new Pane();
|
||||||
|
private final Pane pause = new Pane();
|
||||||
|
|
||||||
private Label nameLabel = new Label("NAME");
|
/*Scene erstellen und zuweisen*/
|
||||||
private Label acronymLabel = new Label("KÜRZEL");
|
private final Scene scene = new Scene(pane, 800, 700);
|
||||||
private Label headline = new Label("HAPPY BIRD");
|
|
||||||
private Label soundLabel = new Label("SOUND");
|
|
||||||
private Label currentScoreLabel = new Label("SCORE");
|
|
||||||
private Label highscoreLabel = new Label("HIGHSCORE");
|
|
||||||
private Label labels[] = {nameLabel, acronymLabel, soundLabel, currentScoreLabel, highscoreLabel};
|
|
||||||
private Label headlineLabels[] = {headline};
|
|
||||||
|
|
||||||
private Button startButton = new Button("START");
|
/*Labels erstellen und zuweisen*/
|
||||||
private Button highscoresButton = new Button("HIGHSCORES");
|
private final Label nameLabel = new Label("NAME");
|
||||||
private Button settingsButton = new Button("EINSTELLUNGEN");
|
private final Label acronymLabel = new Label("KÜRZEL");
|
||||||
private Button startGameButton = new Button("SPIEL STARTEN");
|
private final Label headline = new Label("HAPPY BIRD");
|
||||||
private Button menuButton = new Button("ZURÜCK");
|
private final Label soundLabel = new Label("SOUND");
|
||||||
|
private final Label currentScoreLabel = new Label("SCORE");
|
||||||
|
private final Label highscoreLabel = new Label("HIGHSCORE");
|
||||||
|
private final Label pauseMenuLabel = new Label("PAUSE");
|
||||||
|
private final Label soundLabelPause = new Label("SOUND");
|
||||||
|
|
||||||
private Button[] buttons = {startButton, highscoresButton, settingsButton, startGameButton, menuButton};
|
/*Labels in Arrays speichern*/
|
||||||
|
private final Label[] labels = {nameLabel, acronymLabel, soundLabel, currentScoreLabel, highscoreLabel};
|
||||||
|
private final Label[] headlineLabels = {headline};
|
||||||
|
|
||||||
private TextField name = new TextField();
|
/*Buttons erstellen und zuweisen*/
|
||||||
private TextField acronym = new TextField();
|
private final Button startButton = new Button("START");
|
||||||
|
private final Button highscoresButton = new Button("HIGHSCORES");
|
||||||
|
private final Button settingsButton = new Button("EINSTELLUNGEN");
|
||||||
|
private final Button startGameButton = new Button("SPIEL STARTEN");
|
||||||
|
private final Button menuButton = new Button("ZURÜCK");
|
||||||
|
private final Button pauseButton = new Button("PAUSE");
|
||||||
|
private final Button continueButton = new Button("WEITERSPIELEN");
|
||||||
|
private final Button settingsButtonPause = new Button("EINSTELLUNGEN");
|
||||||
|
private final Button menuButtonPause = new Button("HAUPTMENÜ");
|
||||||
|
private final Button backButtonPause = new Button("ZURÜCK");
|
||||||
|
|
||||||
private TextField inputFields[] = {name, acronym};
|
/*Buttons in Arrays speichern*/
|
||||||
|
private final Button[] buttons = {startButton, highscoresButton, settingsButton, startGameButton, menuButton, pauseButton, continueButton, settingsButtonPause, menuButtonPause, backButtonPause};
|
||||||
|
private final Button[] pauseButtons = {continueButton, settingsButtonPause, menuButtonPause, backButtonPause};
|
||||||
|
|
||||||
private Slider soundSlider = new Slider();
|
/*Textfelder erstellen und zuweisen*/
|
||||||
|
private final TextField name = new TextField();
|
||||||
|
private final TextField acronym = new TextField();
|
||||||
|
|
||||||
private Image bird = new Image("file:src/main/resources/com/example/happy_bird/pics/bird.png", 50, 35, false, false);
|
/*Textfelder in Arrays speichern*/
|
||||||
|
private final TextField[] inputFields = {name, acronym};
|
||||||
|
|
||||||
private Image upperPipe = new Image("file:src/main/resources/com/example/happy_bird/pics/PipeOben.png", 86, 300, false, false);
|
/*Slider erstellen und zuweisen*/
|
||||||
private Image lowerPipe = new Image("file:src/main/resources/com/example/happy_bird/pics/PipeUnten.png", 86, 300, false, false);
|
private final Slider soundSlider = new Slider();
|
||||||
|
private final Slider soundSliderPause = new Slider();
|
||||||
|
|
||||||
|
/*Bilder*/
|
||||||
|
private final Image bird = new Image("file:src/main/resources/com/example/happy_bird/pics/bird.png", 50, 35, false, false);
|
||||||
|
|
||||||
|
private final Image upperPipe = new Image("file:src/main/resources/com/example/happy_bird/pics/PipeOben.png", 86, 300, false, false);
|
||||||
|
private final Image lowerPipe = new Image("file:src/main/resources/com/example/happy_bird/pics/PipeUnten.png", 86, 300, false, false);
|
||||||
|
|
||||||
|
/*Variablen für den Spielverlauf*/
|
||||||
|
//menuScreenRunning: das Hauptmenü ist aufgerufen
|
||||||
|
private boolean menuScreenRunning;
|
||||||
|
//gameRunning: das Spiel läuft/ GameScreen ist aufgerufen
|
||||||
|
private boolean gameRunning;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -61,15 +82,38 @@ public class HappyBirdMain extends Application {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void start(Stage stage) throws IOException {
|
public void start(Stage stage) {
|
||||||
|
|
||||||
stage.setTitle("Happy Bird");
|
stage.setTitle("Happy Bird");
|
||||||
stage.setScene(scene);
|
stage.setScene(scene);
|
||||||
|
|
||||||
/**Bild für Hintergrund erstellen:*/
|
generateMenueScene();
|
||||||
|
|
||||||
|
/*ClickEvents:*/
|
||||||
|
startButton.setOnAction(event -> startButtonClick());
|
||||||
|
|
||||||
|
settingsButton.setOnAction(event -> settingsButtonClick());
|
||||||
|
|
||||||
|
highscoresButton.setOnAction(event -> highscoresButtonClick());
|
||||||
|
|
||||||
|
menuButton.setOnAction(event -> menuButtonClick());
|
||||||
|
|
||||||
|
startGameButton.setOnAction(event -> {
|
||||||
|
gameRunning = true;
|
||||||
|
startGameButtonClick();
|
||||||
|
});
|
||||||
|
|
||||||
|
stage.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void generateMenueScene() {
|
||||||
|
menuScreenRunning = true;
|
||||||
|
|
||||||
|
/*Bild für Hintergrund erstellen:*/
|
||||||
Image image = new Image("file:src/main/resources/com/example/happy_bird/pics/Background.png");
|
Image image = new Image("file:src/main/resources/com/example/happy_bird/pics/Background.png");
|
||||||
|
|
||||||
/**Hintergrund erstellen:*/
|
/*Hintergrund erstellen:*/
|
||||||
BackgroundImage backgroundImage = new BackgroundImage(
|
BackgroundImage backgroundImage = new BackgroundImage(
|
||||||
image,
|
image,
|
||||||
BackgroundRepeat.NO_REPEAT,
|
BackgroundRepeat.NO_REPEAT,
|
||||||
@ -78,30 +122,18 @@ public class HappyBirdMain extends Application {
|
|||||||
BackgroundSize.DEFAULT
|
BackgroundSize.DEFAULT
|
||||||
);
|
);
|
||||||
|
|
||||||
/**Hintergrund zu Pane hinzufügen:*/
|
/*Hintergrund zu Pane hinzufügen:*/
|
||||||
Background background = new Background(backgroundImage);
|
Background background = new Background(backgroundImage);
|
||||||
pane.setBackground(background);
|
pane.setBackground(background);
|
||||||
|
|
||||||
|
/*Labels formatieren:*/
|
||||||
|
|
||||||
/**Labels erstellen:*/
|
|
||||||
|
|
||||||
|
|
||||||
/**Labels in Arrays speichern:*/
|
|
||||||
|
|
||||||
|
|
||||||
/**Labels formatieren:*/
|
|
||||||
labelsFormating(labels, pane);
|
labelsFormating(labels, pane);
|
||||||
headlineFormating(headlineLabels, pane);
|
headlineFormating(headlineLabels, pane);
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
/**alle labels an ihre Stelle:*/
|
|
||||||
=======
|
|
||||||
/*Überschrift umbenennen, falls aus anderem Screen*/
|
/*Überschrift umbenennen, falls aus anderem Screen*/
|
||||||
headline.setText("HAPPY BIRD");
|
headline.setText("HAPPY BIRD");
|
||||||
|
|
||||||
/*alle labels an ihre Stelle:*/
|
/*alle labels an ihre Stelle:*/
|
||||||
>>>>>>> edf4ca25952f2176808ce31dafa9d52f1c7c0cd6
|
|
||||||
int yPositionLabels = 225;
|
int yPositionLabels = 225;
|
||||||
for (Label label : labels) {
|
for (Label label : labels) {
|
||||||
label.setLayoutX(275);
|
label.setLayoutX(275);
|
||||||
@ -109,52 +141,44 @@ public class HappyBirdMain extends Application {
|
|||||||
yPositionLabels += 150;
|
yPositionLabels += 150;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**headline an ihre Stelle:*/
|
/*headline an ihre Stelle:*/
|
||||||
headline.setLayoutX(250);
|
headline.setLayoutX(250);
|
||||||
headline.setLayoutY(100);
|
headline.setLayoutY(100);
|
||||||
|
headline.setVisible(true);
|
||||||
|
|
||||||
/**soundLabel an seine Stelle:*/
|
/*soundLabel an seine Stelle:*/
|
||||||
soundLabel.setLayoutY(225);
|
soundLabel.setLayoutY(225);
|
||||||
|
|
||||||
|
/*Buttons formatieren:*/
|
||||||
|
|
||||||
/**Buttons erstellen:*/
|
|
||||||
|
|
||||||
|
|
||||||
/**Buttons in Array speichern:*/
|
|
||||||
|
|
||||||
|
|
||||||
/**Buttons formatieren:*/
|
|
||||||
buttonsFormating(buttons, pane);
|
buttonsFormating(buttons, pane);
|
||||||
|
|
||||||
/**alle Buttons an ihre Stelle:*/
|
/*alle Buttons an ihre Stelle:*/
|
||||||
int yPositionButtons = 225;
|
int yPositionButtons = 225;
|
||||||
for (Button button : buttons) {
|
for (Button button : buttons) {
|
||||||
button.setLayoutX(300);
|
button.setLayoutX(300);
|
||||||
button.setLayoutY(yPositionButtons);
|
button.setLayoutY(yPositionButtons);
|
||||||
yPositionButtons += 100;
|
yPositionButtons += 100;
|
||||||
|
button.setVisible(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**menuButton an seine Stelle und vorerst ausblenden:*/
|
/*menuButton an seine Stelle und vorerst ausblenden:*/
|
||||||
menuButton.setLayoutX(575);
|
menuButton.setLayoutX(575);
|
||||||
menuButton.setLayoutY(625);
|
menuButton.setLayoutY(625);
|
||||||
menuButton.setVisible(false);
|
menuButton.setVisible(false);
|
||||||
|
|
||||||
/**startGameButton unsichtbar*/
|
/*startGameButton unsichtbar*/
|
||||||
startGameButton.setVisible(false);
|
startGameButton.setVisible(false);
|
||||||
|
|
||||||
|
/*continueButton unsichtbar*/
|
||||||
|
continueButton.setVisible(false);
|
||||||
|
|
||||||
|
/*settingsButtonPause unsichtbar*/
|
||||||
|
settingsButtonPause.setVisible(false);
|
||||||
|
|
||||||
/**Textfelder erstellen:*/
|
/*Textfelder formatieren:*/
|
||||||
|
|
||||||
|
|
||||||
/**Textfelder in Array speichern:*/
|
|
||||||
|
|
||||||
|
|
||||||
/**Textfelder formatieren:*/
|
|
||||||
textfieldsFormating(inputFields, pane);
|
textfieldsFormating(inputFields, pane);
|
||||||
|
|
||||||
/**Textfelder an ihre Position:*/
|
/*Textfelder an ihre Position:*/
|
||||||
int yPositionInputFields = 290;
|
int yPositionInputFields = 290;
|
||||||
for (TextField feld : inputFields) {
|
for (TextField feld : inputFields) {
|
||||||
feld.setLayoutX(275);
|
feld.setLayoutX(275);
|
||||||
@ -162,34 +186,71 @@ public class HappyBirdMain extends Application {
|
|||||||
yPositionInputFields += 150;
|
yPositionInputFields += 150;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*SoundSlicer anpassen:*/
|
||||||
|
|
||||||
/**SoundSlider erstellen:*/
|
|
||||||
|
|
||||||
|
|
||||||
/**SoundSlicer anpassen:*/
|
|
||||||
soundSliderFormating(soundSlider, pane);
|
soundSliderFormating(soundSlider, pane);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generiert den GameScreen durch Ausblenden und
|
||||||
|
* Sichtbarmachen der richtigen Buttons, Labels, ...
|
||||||
|
*/
|
||||||
|
public void generateGameScreen() {
|
||||||
|
menuScreenRunning = false;
|
||||||
|
|
||||||
|
/*Headline-Label umbenennen*/
|
||||||
|
nameLabel.setText("KÜRZEL: " + acronym.getText());
|
||||||
|
|
||||||
/**ClickEvents:*/
|
/*Textfelder ausblenden*/
|
||||||
startButton.setOnAction(event -> {
|
for(TextField feld : inputFields) {
|
||||||
startButtonClick();
|
feld.setVisible(false);
|
||||||
});
|
}
|
||||||
|
|
||||||
settingsButton.setOnAction(event -> {
|
/*Labels ausblenden*/
|
||||||
settingsButtonClick();
|
for (Label label : labels ) {
|
||||||
});
|
label.setVisible(false);
|
||||||
|
}
|
||||||
|
headline.setVisible(false);
|
||||||
|
|
||||||
highscoresButton.setOnAction(event -> {
|
/*nameLabel positionieren und sichtbar machen*/
|
||||||
highscoresButtonClick();
|
nameLabel.setLayoutX(10);
|
||||||
});
|
nameLabel.setLayoutY(10);
|
||||||
|
nameLabel.setVisible(true);
|
||||||
|
|
||||||
menuButton.setOnAction(event -> {
|
/*currentScoreLabel positionieren und sichtbar machen*/
|
||||||
menuButtonClick();
|
currentScoreLabel.setLayoutX(540);
|
||||||
});
|
currentScoreLabel.setLayoutY(10);
|
||||||
|
currentScoreLabel.setVisible(true);
|
||||||
|
|
||||||
stage.show();
|
/*highscoreLabel positionieren und sichtbar machen*/
|
||||||
|
highscoreLabel.setLayoutX(540);
|
||||||
|
highscoreLabel.setLayoutY(70);
|
||||||
|
highscoreLabel.setVisible(true);
|
||||||
|
|
||||||
|
/*Pause-Button positionieren und sichtbar machen*/
|
||||||
|
pauseButton.setLayoutX(575);
|
||||||
|
pauseButton.setLayoutY(625);
|
||||||
|
pauseButton.setVisible(true);
|
||||||
|
|
||||||
|
/*übrige Buttons ausblenden*/
|
||||||
|
startGameButton.setVisible(false);
|
||||||
|
menuButton.setVisible(false);
|
||||||
|
|
||||||
|
/*Vogel hinzufügen, bisher nur als Bild*/
|
||||||
|
ImageView birdView = new ImageView(bird);
|
||||||
|
pane.getChildren().add(birdView);
|
||||||
|
birdView.setLayoutY(325);
|
||||||
|
birdView.setLayoutX(50);
|
||||||
|
|
||||||
|
/*Pipes oben, unten hinzufügen, bisher nur als Bild*/
|
||||||
|
ImageView upperPipeView = new ImageView(upperPipe);
|
||||||
|
pane.getChildren().add(upperPipeView);
|
||||||
|
upperPipeView.setLayoutX(400);
|
||||||
|
upperPipeView.setLayoutY(0);
|
||||||
|
|
||||||
|
ImageView lowerPipeView = new ImageView(lowerPipe);
|
||||||
|
pane.getChildren().add(lowerPipeView);
|
||||||
|
lowerPipeView.setLayoutX(400);
|
||||||
|
lowerPipeView.setLayoutY(430);
|
||||||
}
|
}
|
||||||
|
|
||||||
/***
|
/***
|
||||||
@ -295,31 +356,75 @@ public class HappyBirdMain extends Application {
|
|||||||
slider.setVisible(false);
|
slider.setVisible(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/***
|
||||||
|
* Formatiert den PauseScreen
|
||||||
|
*/
|
||||||
|
public void pauseScreenFormating() {
|
||||||
|
/*pause-Pane formatieren*/
|
||||||
|
pause.setPrefSize(400, 400);
|
||||||
|
pause.setLayoutX(200);
|
||||||
|
pause.setLayoutY(150);
|
||||||
|
pause.setStyle("-fx-background-color: #DED894; " +
|
||||||
|
"-fx-border-width: 5px;" +
|
||||||
|
"-fx-border-color: #543847;" +
|
||||||
|
"-fx-border-radius: 15px;" +
|
||||||
|
"-fx-background-radius: 20px;");
|
||||||
|
|
||||||
|
/*pauseMenuLabel formatieren*/
|
||||||
|
pauseMenuLabel.setPrefSize(300,50);
|
||||||
|
pauseMenuLabel.setLayoutX(50);
|
||||||
|
pauseMenuLabel.setLayoutY(10);
|
||||||
|
pauseMenuLabel.setStyle("-fx-background-color: #DED894; " +
|
||||||
|
"-fx-text-fill: #000000; " +
|
||||||
|
"-fx-font-size: 35px; " +
|
||||||
|
"-fx-font-weight: bold;" +
|
||||||
|
"-fx-alignment: center;");
|
||||||
|
|
||||||
|
/*soundLabelPause formatieren*/
|
||||||
|
soundLabelPause.setPrefSize(100, 50);
|
||||||
|
soundLabelPause.setLayoutX(150);
|
||||||
|
soundLabelPause.setLayoutY(100);
|
||||||
|
soundLabelPause.setStyle("-fx-background-color: #DED894; " +
|
||||||
|
"-fx-text-fill: #000000; " +
|
||||||
|
"-fx-font-size: 20px; " +
|
||||||
|
"-fx-font-weight: bold;" +
|
||||||
|
"-fx-alignment: center;");
|
||||||
|
}
|
||||||
|
|
||||||
/***
|
/***
|
||||||
* Hauptmenü wird ausgeblendet, Nameneingabe folgt
|
* Hauptmenü wird ausgeblendet, Nameneingabe folgt
|
||||||
*/
|
*/
|
||||||
public void startButtonClick() {
|
public void startButtonClick() {
|
||||||
|
/*Überschrift umbenennen*/
|
||||||
headline.setText("START");
|
headline.setText("START");
|
||||||
startGameButton.setOnAction(event -> {
|
|
||||||
startGameButtonClick();
|
/*alle Buttons ausblenden*/
|
||||||
});
|
|
||||||
for(Button button : buttons) {
|
for(Button button : buttons) {
|
||||||
button.setVisible(false);
|
button.setVisible(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
startGameButton.setVisible(true);
|
/*gebrauchte Buttons einblenden, ggf. anpassen*/
|
||||||
menuButton.setVisible(true);
|
menuButton.setVisible(true);
|
||||||
|
startGameButton.setVisible(true);
|
||||||
startGameButton.setLayoutY(520);
|
startGameButton.setLayoutY(520);
|
||||||
|
|
||||||
|
/*Textfelder einblenden*/
|
||||||
for(TextField feld : inputFields) {
|
for(TextField feld : inputFields) {
|
||||||
feld.setVisible(true);
|
feld.setVisible(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*Labels einblenden*/
|
||||||
for (Label label : labels ) {
|
for (Label label : labels ) {
|
||||||
label.setVisible(true);
|
label.setVisible(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*nicht verwendete Labels ausblenden*/
|
||||||
highscoreLabel.setVisible(false);
|
highscoreLabel.setVisible(false);
|
||||||
currentScoreLabel.setVisible(false);
|
currentScoreLabel.setVisible(false);
|
||||||
soundLabel.setVisible(false);
|
soundLabel.setVisible(false);
|
||||||
|
|
||||||
|
/*Click-Events*/
|
||||||
|
startGameButton.setOnAction(event -> startGameButtonClick());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -327,7 +432,10 @@ public class HappyBirdMain extends Application {
|
|||||||
* Hauptmenü wird ausgeblendet, Einstellungen folgen
|
* Hauptmenü wird ausgeblendet, Einstellungen folgen
|
||||||
*/
|
*/
|
||||||
public void settingsButtonClick() {
|
public void settingsButtonClick() {
|
||||||
|
/*Überschrift umbenennen*/
|
||||||
headline.setText("EINSTELLUNGEN");
|
headline.setText("EINSTELLUNGEN");
|
||||||
|
|
||||||
|
/*nicht verwendete Buttons/ Labels ausblenden, gebrauchte einblenden*/
|
||||||
startButton.setVisible(false);
|
startButton.setVisible(false);
|
||||||
highscoresButton.setVisible(false);
|
highscoresButton.setVisible(false);
|
||||||
settingsButton.setVisible(false);
|
settingsButton.setVisible(false);
|
||||||
@ -336,11 +444,56 @@ public class HappyBirdMain extends Application {
|
|||||||
soundLabel.setVisible(true);
|
soundLabel.setVisible(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/***
|
||||||
|
* Hauptmenü wird ausgeblendet, Einstellungen folgen
|
||||||
|
*/
|
||||||
|
public void settingsButtonPauseClick() {
|
||||||
|
/*Überschrift umbenennen*/
|
||||||
|
pauseMenuLabel.setText("EINSTELLUNGEN");
|
||||||
|
|
||||||
|
/*alle Buttons ausblenden*/
|
||||||
|
for(Button button : pauseButtons) {
|
||||||
|
button.setVisible(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*gebrauchte Buttons einblenden und anpassen*/
|
||||||
|
backButtonPause.setVisible(true);
|
||||||
|
backButtonPause.setLayoutY(300);
|
||||||
|
|
||||||
|
/*soundSliderPause anpassen und einblenden*/
|
||||||
|
soundSliderPause.setPrefSize(200, 5);
|
||||||
|
soundSliderPause.setLayoutX(100);
|
||||||
|
soundSliderPause.setLayoutY(150);
|
||||||
|
soundSliderPause.setVisible(true);
|
||||||
|
|
||||||
|
/*soundLabelPause einblenden*/
|
||||||
|
soundLabelPause.setVisible(true);
|
||||||
|
|
||||||
|
/*Click-Events*/
|
||||||
|
backButtonPause.setOnAction(event -> {
|
||||||
|
/*Überschrift umbenennen*/
|
||||||
|
pauseMenuLabel.setText("PAUSE");
|
||||||
|
|
||||||
|
/*alle Buttons einblenden*/
|
||||||
|
for(Button button : pauseButtons) {
|
||||||
|
button.setVisible(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*nicht verwendete Buttons ausblenden*/
|
||||||
|
backButtonPause.setVisible(false);
|
||||||
|
soundSliderPause.setVisible(false);
|
||||||
|
soundLabelPause.setVisible(false);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/***
|
/***
|
||||||
* Hauptmenü wird ausgeblendet, Highscores folgen
|
* Hauptmenü wird ausgeblendet, Highscores folgen
|
||||||
*/
|
*/
|
||||||
public void highscoresButtonClick() {
|
public void highscoresButtonClick() {
|
||||||
|
/*Überschrift umbenennen*/
|
||||||
headline.setText("HIGHSCORES");
|
headline.setText("HIGHSCORES");
|
||||||
|
|
||||||
|
/*nicht verwendete Buttons ausblenden, verwendete einblenden*/
|
||||||
startButton.setVisible(false);
|
startButton.setVisible(false);
|
||||||
highscoresButton.setVisible(false);
|
highscoresButton.setVisible(false);
|
||||||
settingsButton.setVisible(false);
|
settingsButton.setVisible(false);
|
||||||
@ -352,19 +505,28 @@ public class HappyBirdMain extends Application {
|
|||||||
* Erneutes Anzeigen des Hauptmenüs
|
* Erneutes Anzeigen des Hauptmenüs
|
||||||
*/
|
*/
|
||||||
public void menuButtonClick() {
|
public void menuButtonClick() {
|
||||||
|
/*Überschrift umbenennen*/
|
||||||
headline.setText("HAPPY BIRD");
|
headline.setText("HAPPY BIRD");
|
||||||
|
|
||||||
|
/*nicht verwendete Buttons ausblenden, verwendete einblenden*/
|
||||||
startButton.setVisible(true);
|
startButton.setVisible(true);
|
||||||
highscoresButton.setVisible(true);
|
highscoresButton.setVisible(true);
|
||||||
settingsButton.setVisible(true);
|
settingsButton.setVisible(true);
|
||||||
menuButton.setVisible(false);
|
menuButton.setVisible(false);
|
||||||
soundSlider.setVisible(false);
|
|
||||||
soundLabel.setVisible(false);
|
|
||||||
startGameButton.setVisible(false);
|
startGameButton.setVisible(false);
|
||||||
|
|
||||||
|
/*soundSlider ausblenden*/
|
||||||
|
soundSlider.setVisible(false);
|
||||||
|
|
||||||
|
/*soundLabel ausblenden*/
|
||||||
|
//soundLabel.setVisible(false);
|
||||||
|
|
||||||
|
/*Textfelder ausblenden*/
|
||||||
for(TextField feld : inputFields) {
|
for(TextField feld : inputFields) {
|
||||||
feld.setVisible(false);
|
feld.setVisible(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*alle Labels ausblenden*/
|
||||||
for (Label label : labels ) {
|
for (Label label : labels ) {
|
||||||
label.setVisible(false);
|
label.setVisible(false);
|
||||||
}
|
}
|
||||||
@ -374,40 +536,116 @@ public class HappyBirdMain extends Application {
|
|||||||
* Startet Spiel nach Namenseingabe
|
* Startet Spiel nach Namenseingabe
|
||||||
*/
|
*/
|
||||||
public void startGameButtonClick() {
|
public void startGameButtonClick() {
|
||||||
nameLabel.setText("NAME: " + acronym.getText());
|
generateGameScreen();
|
||||||
for(TextField feld : inputFields) {
|
|
||||||
feld.setVisible(false);
|
/*Klick auf den Pause-Button, um das Pause-Menü aufzurufen*/
|
||||||
|
pauseButton.setOnAction(event -> {
|
||||||
|
if(!menuScreenRunning) {
|
||||||
|
pauseButtonClick(gameRunning);
|
||||||
|
gameRunning = !gameRunning;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
/*ESC-Tast drücken, um das Pause-Menü aufzurufen*/
|
||||||
|
scene.setOnKeyPressed(e -> {
|
||||||
|
if(e.getCode() == KeyCode.ESCAPE && !menuScreenRunning) {
|
||||||
|
pauseButtonClick(gameRunning);
|
||||||
|
gameRunning = !gameRunning;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/***
|
||||||
|
* Zurück zum Spiel aus dem PauseScreen heraus
|
||||||
|
*/
|
||||||
|
public void continueButtonClick() {
|
||||||
|
/*pauseButton einblenden*/
|
||||||
|
pauseButton.setVisible(true);
|
||||||
|
|
||||||
|
/*PauseScreen ausblenden*/
|
||||||
|
pause.setVisible(false);
|
||||||
|
|
||||||
|
/*Vom PauseScreen entfernen*/
|
||||||
|
pause.getChildren().clear();
|
||||||
|
pane.getChildren().remove(pause);
|
||||||
|
|
||||||
|
/*gameRunning auf false setzen, da sonst 2x Click auf Pause-Button bzw. ESC*/
|
||||||
|
gameRunning = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/***
|
||||||
|
* alles vom pane entfernen, da als nächstes zum Hauptmenü
|
||||||
|
*/
|
||||||
|
private void menuButtonPauseClick() {
|
||||||
|
/*alles vom pauseScreen entfernen*/
|
||||||
|
pause.getChildren().clear();
|
||||||
|
|
||||||
|
/*pause von pane entfernen*/
|
||||||
|
pane.getChildren().clear();
|
||||||
|
|
||||||
|
/*gameRunning auf false, da zurück zum Hauptmenü*/
|
||||||
|
gameRunning = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/***
|
||||||
|
* Ruft das Pause-Menü im Spiel auf oder blendet es wieder aus
|
||||||
|
*/
|
||||||
|
public void pauseButtonClick(Boolean gameRuns) {
|
||||||
|
pauseScreenFormating();
|
||||||
|
|
||||||
|
/*PauseScreen aufrufen, wenn das Spiel läuft, sonst wieder ausblenden*/
|
||||||
|
if(!gameRuns) {
|
||||||
|
pauseButton.setVisible(false);
|
||||||
|
|
||||||
|
/*PauseScreen einblenden*/
|
||||||
|
pause.setVisible(true);
|
||||||
|
|
||||||
|
/*Buttons anpassen, zum pauseScreen hinzufügen und einblenden*/
|
||||||
|
int yPosition = 100;
|
||||||
|
for(Button button : pauseButtons) {
|
||||||
|
button.setLayoutX(100);
|
||||||
|
button.setLayoutY(yPosition);
|
||||||
|
yPosition += 100;
|
||||||
|
pause.getChildren().add(button);
|
||||||
|
button.setVisible(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*backButtonPause vorerst ausblenden und zu pause hinzufügen*/
|
||||||
|
backButtonPause.setVisible(false);
|
||||||
|
pause.getChildren().add(pauseMenuLabel);
|
||||||
|
|
||||||
|
/*soundSliderPause vorerst ausblenden und zu pause hinzufügen*/
|
||||||
|
soundSliderPause.setVisible(false);
|
||||||
|
pause.getChildren().add(soundSliderPause);
|
||||||
|
|
||||||
|
/*soundLabelPause vorerst ausblenden und zu pause hinzufügen*/
|
||||||
|
soundLabelPause.setVisible(false);
|
||||||
|
pause.getChildren().add(soundLabelPause);
|
||||||
|
|
||||||
|
/*pause zu pane hinzufügen*/
|
||||||
|
pane.getChildren().add(pause);
|
||||||
|
|
||||||
|
/*ClickEvents*/
|
||||||
|
continueButton.setOnAction(event -> continueButtonClick());
|
||||||
|
|
||||||
|
menuButtonPause.setOnAction(event -> {
|
||||||
|
menuButtonPauseClick();
|
||||||
|
generateMenueScene();
|
||||||
|
});
|
||||||
|
|
||||||
|
settingsButtonPause.setOnAction(event -> settingsButtonPauseClick());
|
||||||
|
} else {
|
||||||
|
/*pauseButton einblenden*/
|
||||||
|
pauseButton.setVisible(true);
|
||||||
|
|
||||||
|
/*PauseScreen ausblenden*/
|
||||||
|
pause.setVisible(false);
|
||||||
|
|
||||||
|
/*alles vom PauseScreen entfernen*/
|
||||||
|
pause.getChildren().clear();
|
||||||
|
|
||||||
|
/*pause von pane entfernen*/
|
||||||
|
pane.getChildren().remove(pause);
|
||||||
}
|
}
|
||||||
for (Label label : labels )
|
|
||||||
{
|
|
||||||
label.setVisible(false);
|
|
||||||
}
|
|
||||||
startGameButton.setVisible(false);
|
|
||||||
menuButton.setVisible(false);
|
|
||||||
headline.setVisible(false);
|
|
||||||
ImageView birdView = new ImageView(bird);
|
|
||||||
pane.getChildren().add(birdView);
|
|
||||||
birdView.setLayoutY(325);
|
|
||||||
birdView.setLayoutX(50);
|
|
||||||
nameLabel.setLayoutX(10);
|
|
||||||
nameLabel.setLayoutY(10);
|
|
||||||
nameLabel.setVisible(true);
|
|
||||||
|
|
||||||
ImageView upperPipeView = new ImageView(upperPipe);
|
|
||||||
pane.getChildren().add(upperPipeView);
|
|
||||||
upperPipeView.setLayoutX(400);
|
|
||||||
upperPipeView.setLayoutY(0);
|
|
||||||
|
|
||||||
ImageView lowerPipeView = new ImageView(lowerPipe);
|
|
||||||
pane.getChildren().add(lowerPipeView);
|
|
||||||
lowerPipeView.setLayoutX(400);
|
|
||||||
lowerPipeView.setLayoutY(430);
|
|
||||||
|
|
||||||
currentScoreLabel.setLayoutX(540);
|
|
||||||
currentScoreLabel.setLayoutY(10);
|
|
||||||
currentScoreLabel.setVisible(true);
|
|
||||||
highscoreLabel.setLayoutX(540);
|
|
||||||
highscoreLabel.setLayoutY(70);
|
|
||||||
highscoreLabel.setVisible(true);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user