Compare commits

...

4 Commits

Author SHA1 Message Date
70c8716a5f Zusammenführung von Methoden 2021-11-29 13:23:16 +01:00
5378876ff9 Auslagerung der Methoden zum Formatieren 2021-11-29 13:19:52 +01:00
e25465873b Merging 2021-11-26 12:47:36 +01:00
dff4261c28 Merging 2021-11-26 12:45:35 +01:00
10 changed files with 254 additions and 151 deletions

View File

@ -1,5 +1,9 @@
package com.example.happy_bird; 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 {
} }

View File

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