diff --git a/Happy_Bird/src/main/java/com/example/happy_bird/HappyBird.java b/Happy_Bird/src/main/java/com/example/happy_bird/HappyBird.java index b1b66ae..07b4181 100644 --- a/Happy_Bird/src/main/java/com/example/happy_bird/HappyBird.java +++ b/Happy_Bird/src/main/java/com/example/happy_bird/HappyBird.java @@ -1,5 +1,9 @@ package com.example.happy_bird; -public class HappyBird { - +import javafx.scene.control.Button; +import javafx.scene.control.Label; +import javafx.scene.control.TextField; + +public class HappyBird extends HappyBirdMain { + } diff --git a/Happy_Bird/src/main/java/com/example/happy_bird/HappyBirdMain.java b/Happy_Bird/src/main/java/com/example/happy_bird/HappyBirdMain.java index f19036f..8f12286 100644 --- a/Happy_Bird/src/main/java/com/example/happy_bird/HappyBirdMain.java +++ b/Happy_Bird/src/main/java/com/example/happy_bird/HappyBirdMain.java @@ -22,20 +22,46 @@ import java.io.IOException; public class HappyBirdMain extends Application { + private Pane pane = new Pane(); + private Scene scene = new Scene(pane, 800, 700); + + private Label nameLabel = new Label("NAME"); + private Label acronymLabel = new Label("KÜRZEL"); + private Label headline = new Label("HAPPY BIRD"); + private Label soundLabel = new Label("SOUND"); + + private Label labels[] = {nameLabel, acronymLabel, soundLabel}; + private Label headlineLabels[] = {headline}; + + private Button startButton = new Button("START"); + private Button highscoresButton = new Button("HIGHSCORES"); + private Button settingsButton = new Button("EINSTELLUNGEN"); + private Button startGameButton = new Button("SPIEL STARTEN"); + private Button menuButton = new Button("ZURÜCK"); + + private Button[] buttons = {startButton, highscoresButton, settingsButton, startGameButton, menuButton}; + + private TextField name = new TextField(); + private TextField acronym = new TextField(); + + private TextField inputFields[] = {name, acronym}; + + private Slider soundSlider = new Slider(); + public static void main(String[] args) { launch(args); } @Override public void start(Stage stage) throws IOException { - Pane pane = new Pane(); - Scene scene = new Scene(pane, 800, 700); stage.setTitle("Happy Bird"); stage.setScene(scene); - //Backgroundimage - Image backgroundImage = new Image("file:src/main/resources/com/example/happy_bird/pics/Background.png"); + /**Bild für Hintergrund erstellen:*/ + Image image = new Image("file:src/main/resources/com/example/happy_bird/pics/Background.png"); + + /**Hintergrund erstellen:*/ BackgroundImage backgroundImageImg = new BackgroundImage( backgroundImage, BackgroundRepeat.NO_REPEAT, @@ -44,6 +70,7 @@ public class HappyBirdMain extends Application { BackgroundSize.DEFAULT ); + /**Hintergrund zu Pane hinzufügen:*/ Image bird = new Image("file:src/main/resources/com/example/happy_bird/pics/bird.png", 50, 35, false, false); /*ImageView birdView = new ImageView(); birdView.setFitHeight(50); @@ -59,57 +86,117 @@ public class HappyBirdMain extends Application { Background background = new Background(backgroundImageImg); pane.setBackground(background); - //Headline-Label - Label headline = new Label("Happy Bird"); - headline.setPrefSize(300, 75); - headline.setTextAlignment(TextAlignment.CENTER); - headline.setStyle("-fx-background-color: #DED894; " + - "-fx-text-fill: #000000; " + - "-fx-font-size: 35px; " + - "-fx-border-width: 5px;" + - "-fx-border-color: #543847;" + - "-fx-font-weight: bold;" + - "-fx-alignment: center;" + - "-fx-background-radius: 20px;" + - "-fx-border-radius: 15px;"); + + + /**Labels erstellen:*/ + + + /**Labels in Arrays speichern:*/ + + + /**Labels formatieren:*/ + labelsFormating(labels, pane); + headlineFormating(headlineLabels, pane); + + /**alle labels an ihre Stelle:*/ + int yPositionLabels = 225; + for (Label label : labels) { + label.setLayoutX(275); + label.setLayoutY(yPositionLabels); + yPositionLabels += 150; + } + + /**headline an ihre Stelle:*/ headline.setLayoutX(250); headline.setLayoutY(100); - pane.getChildren().add(headline); + /**soundLabel an seine Stelle:*/ + soundLabel.setLayoutY(225); - //Buttons: - Button startButton = new Button("START"); - Button highscoresButton = new Button("HIGHSCORES"); - Button settingsButton = new Button("EINSTELLUNGEN"); - Button startGame = new Button("SPIEL STARTEN"); - Button buttons[] = {startButton, highscoresButton, settingsButton, startGame}; - Button menuButton = new Button("ZURÜCK"); - menuButton.setStyle("-fx-background-color: #e86000; " + - "-fx-text-fill: #FFFFFF; " + - "-fx-font-size: 20px; " + - "-fx-border-width: 5px;" + - "-fx-border-color: #FFFFFF;" + - "-fx-font-weight: bold;" + - "-fx-border-radius: 15px;" + - "-fx-background-radius: 20px;"); - pane.getChildren().add(menuButton); - menuButton.setPrefSize(200, 50); + + /**Buttons erstellen:*/ + + + /**Buttons in Array speichern:*/ + + + /**Buttons formatieren:*/ + buttonsFormating(buttons, pane); + + /**alle Buttons an ihre Stelle:*/ + int yPositionButtons = 225; + for (Button button : buttons) { + button.setLayoutX(300); + button.setLayoutY(yPositionButtons); + yPositionButtons += 100; + } + + /**menuButton an seine Stelle und vorerst ausblenden:*/ menuButton.setLayoutX(575); menuButton.setLayoutY(625); menuButton.setVisible(false); - startGame.setVisible(false); + + /**startGameButton unsichtbar*/ + startGameButton.setVisible(false); - //Button buttons[] = {startButton, highscoresButton, settingsButton}; - int yPosition = 225; + /**Textfelder erstellen:*/ + + + /**Textfelder in Array speichern:*/ + + + /**Textfelder formatieren:*/ + textfieldsFormating(inputFields, pane); + + /**Textfelder an ihre Position:*/ + int yPositionInputFields = 290; + for (TextField feld : inputFields) { + feld.setLayoutX(275); + feld.setLayoutY(yPositionInputFields); + yPositionInputFields += 150; + } + + + + /**SoundSlider erstellen:*/ + + + /**SoundSlicer anpassen:*/ + soundSliderFormating(soundSlider, pane); + + + + /**ClickEvents:*/ + startButton.setOnAction(event -> { + startButtonClick(); + }); + + settingsButton.setOnAction(event -> { + settingsButtonClick(); + }); + + highscoresButton.setOnAction(event -> { + highscoresButtonClick(); + }); + + menuButton.setOnAction(event -> { + menuButtonClick(); + }); + + stage.show(); + } + + /*** + * Formatiert alle Buttons und fügt sie der Pane hinzu + * @param buttons ButtonArray mit allen Arrays + * @param pane Pane, auf der die Buttons angezeigt werden + */ + public void buttonsFormating(Button[] buttons, Pane pane) { for (Button button : buttons) { - pane.getChildren().add(button); button.setPrefSize(200, 50); - button.setLayoutX(300); - button.setLayoutY(yPosition); - yPosition += 100; button.setStyle("-fx-background-color: #e86000; " + "-fx-text-fill: #FFFFFF; " + @@ -119,25 +206,20 @@ public class HappyBirdMain extends Application { "-fx-font-weight: bold;" + "-fx-border-radius: 15px;" + "-fx-background-radius: 20px;"); + + pane.getChildren().add(button); } + } - startGame.setVisible(false); - - Label nameLabel = new Label("Name:"); - Label acronymLabel = new Label("Kürzel:"); - - Label startLabels[] = {nameLabel, acronymLabel}; - startButton.setOnAction(event -> { - headline.setText("Start"); - for (Button button : buttons) { - button.setVisible(false); - menuButton.setVisible(true); - } - }); - - int yPositionStartLabels = 225; - for (Label label : startLabels) { + /*** + * Formatiert alle kleinen Labels (keine Überschrift) und fügt sie der Pane hinzu + * @param labels LabelArray mit allen Labels + * @param pane Pane, auf der die Labels angezeigt werden + */ + public void labelsFormating(Label[] labels, Pane pane) { + for (Label label : labels) { label.setPrefSize(250, 50); + label.setStyle("-fx-background-color: #DED894; " + "-fx-text-fill: #000000; " + "-fx-font-size: 20px; " + @@ -148,55 +230,73 @@ public class HappyBirdMain extends Application { "-fx-background-radius: 20px;" + "-fx-border-radius: 15px;"); - label.setLayoutX(275); - label.setLayoutY(yPositionStartLabels); - yPositionStartLabels += 150; - pane.getChildren().add(label); + label.setVisible(false); } + } - TextField name = new TextField(); - TextField acronym = new TextField(); + /*** + * Formatiert alle Überschriften-Labels und fügt sie der Pane hinzu + * @param labels LabelArray mit Überschriften-Labels + * @param pane Pane, auf der die Labels angezeigt werden + */ + public void headlineFormating(Label[] labels, Pane pane) { + for (Label label : labels) { + label.setPrefSize(300, 75); + label.setTextAlignment(TextAlignment.CENTER); - TextField inputFields[] = {name, acronym}; + label.setStyle("-fx-background-color: #DED894; " + + "-fx-text-fill: #000000; " + + "-fx-font-size: 35px; " + + "-fx-border-width: 5px;" + + "-fx-border-color: #543847;" + + "-fx-font-weight: bold;" + + "-fx-alignment: center;" + + "-fx-background-radius: 20px;" + + "-fx-border-radius: 15px;"); - int yPositionInputFields = 290; - for (TextField feld : inputFields) { - feld.setPrefSize(250, 50); - feld.setStyle("-fx-font-size: 20px;" + + pane.getChildren().add(label); + } + } + + /*** + * Formatiert alle Textfelder und fügt sie der Pane hinzu + * @param textfields TextFieldArray mit allen Textfeldern + * @param pane Pane, auf der die Textfelder angezeigt werden + */ + public void textfieldsFormating(TextField[] textfields, Pane pane) { + for (TextField field : textfields) { + field.setPrefSize(250, 50); + field.setStyle("-fx-font-size: 20px;" + "-fx-font-weight: bold;"); - feld.setLayoutX(275); - feld.setLayoutY(yPositionInputFields); - yPositionInputFields += 150; + pane.getChildren().add(field); - pane.getChildren().add(feld); - feld.setVisible(false); + field.setVisible(false); } + } + /*** + * Formatiert den soundSlider und fügt ihn der Pane hinzu + * @param slider SoundSlider + * @param pane Pane, auf der der Slider angezeigt wird + */ + public void soundSliderFormating(Slider slider, Pane pane) { + slider.setPrefSize(200, 5); + slider.setLayoutX(300); + slider.setLayoutY(295); - startButton.setOnAction(event -> { - headline.setText("Start"); - for(Button button : buttons) { - button.setVisible(false); - - } - - startGame.setVisible(true); - menuButton.setVisible(true); - startGame.setLayoutY(520); - - for(TextField feld : inputFields) { - feld.setVisible(true); - } - for (Label label : startLabels ) - { - label.setVisible(true); - } - }); + pane.getChildren().add(slider); + slider.setVisible(false); + } + /*** + * Hauptmenü wird ausgeblendet, Nameneingabe folgt + */ + public void startButtonClick() { + headline.setText("START"); startGame.setOnAction(event -> { for(TextField feld : inputFields) { feld.setVisible(false); @@ -224,70 +324,69 @@ public class HappyBirdMain extends Application { lowerPipeView.setLayoutY(430); }); + for(Button button : buttons) { + button.setVisible(false); + } - //Slider: - Slider soundSlider = new Slider(); - pane.getChildren().add(soundSlider); - soundSlider.setPrefSize(200, 5); - soundSlider.setLayoutX(300); - soundSlider.setLayoutY(295); - soundSlider.setVisible(false); + startGameButton.setVisible(true); + menuButton.setVisible(true); + startGameButton.setLayoutY(520); - Label soundLabel = new Label("SOUND"); - soundLabel.setPrefSize(200, 55); - soundLabel.setTextAlignment(TextAlignment.CENTER); - soundLabel.setStyle("-fx-background-color: #DED894; " + - "-fx-text-fill: #000000; " + - "-fx-font-size: 20px; " + - "-fx-border-width: 5px;" + - "-fx-border-color: #543847;" + - "-fx-font-weight: bold;" + - "-fx-alignment: center;" + - "-fx-background-radius: 20px;" + - "-fx-border-radius: 15px;"); - soundLabel.setLayoutX(300); - soundLabel.setLayoutY(225); + for(TextField feld : inputFields) { + feld.setVisible(true); + } + for (Label label : labels ) { + label.setVisible(true); + } - pane.getChildren().add(soundLabel); soundLabel.setVisible(false); + } - settingsButton.setOnAction(event -> { - headline.setText("EINSTELLUNGEN"); - startButton.setVisible(false); - highscoresButton.setVisible(false); - settingsButton.setVisible(false); - menuButton.setVisible(true); - soundSlider.setVisible(true); - soundLabel.setVisible(true); - }); + /*** + * Hauptmenü wird ausgeblendet, Einstellungen folgen + */ + public void settingsButtonClick() { + headline.setText("EINSTELLUNGEN"); + startButton.setVisible(false); + highscoresButton.setVisible(false); + settingsButton.setVisible(false); + menuButton.setVisible(true); + soundSlider.setVisible(true); + soundLabel.setVisible(true); + } - highscoresButton.setOnAction(event -> { - headline.setText("HIGHSCORES"); - startButton.setVisible(false); - highscoresButton.setVisible(false); - settingsButton.setVisible(false); - menuButton.setVisible(true); - }); + /*** + * Hauptmenü wird ausgeblendet, Highscores folgen + */ + public void highscoresButtonClick() { + headline.setText("HIGHSCORES"); + startButton.setVisible(false); + highscoresButton.setVisible(false); + settingsButton.setVisible(false); + menuButton.setVisible(true); + } - menuButton.setOnAction(event -> { - headline.setText("HAPPY BIRD"); - startButton.setVisible(true); - highscoresButton.setVisible(true); - settingsButton.setVisible(true); - menuButton.setVisible(false); - soundSlider.setVisible(false); - soundLabel.setVisible(false); - startGame.setVisible(false); - for(TextField feld : inputFields) { - feld.setVisible(false); - } - for (Label label : startLabels ) - { - label.setVisible(false); - } - }); + /*** + * Nameneingabe, Einstellungen und Highscores werden ausgeblendet + * Erneutes Anzeigen des Hauptmenüs + */ + public void menuButtonClick() { + headline.setText("HAPPY BIRD"); + startButton.setVisible(true); + highscoresButton.setVisible(true); + settingsButton.setVisible(true); + menuButton.setVisible(false); + soundSlider.setVisible(false); + soundLabel.setVisible(false); + startGameButton.setVisible(false); - stage.show(); + for(TextField feld : inputFields) { + feld.setVisible(false); + } + + for (Label label : labels ) { + label.setVisible(false); + } } }