PauseScreen aufrufen
This commit is contained in:
21
Happy_Bird/src/main/java/com/example/happy_bird/Bird.java
Normal file
21
Happy_Bird/src/main/java/com/example/happy_bird/Bird.java
Normal file
@@ -0,0 +1,21 @@
|
||||
package com.example.happy_bird;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.image.ImageObserver;
|
||||
|
||||
public class Bird extends SpielObjekt {
|
||||
|
||||
public Bird(int xWert, int yWert) {
|
||||
super(xWert, yWert);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(Graphics2D g, ImageObserver obs) {
|
||||
|
||||
}
|
||||
}
|
@@ -1,11 +1,6 @@
|
||||
package com.example.happy_bird;
|
||||
|
||||
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.control.Button;
|
||||
import javafx.scene.control.Label;
|
||||
@@ -13,11 +8,12 @@ import javafx.scene.control.TextField;
|
||||
import javafx.scene.control.Slider;
|
||||
import javafx.scene.image.*;
|
||||
import javafx.scene.image.Image;
|
||||
import javafx.scene.input.KeyCode;
|
||||
import javafx.scene.layout.*;
|
||||
import javafx.scene.text.TextAlignment;
|
||||
import javafx.stage.Stage;
|
||||
|
||||
import java.awt.*;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public class HappyBirdMain extends Application {
|
||||
@@ -31,6 +27,7 @@ public class HappyBirdMain extends Application {
|
||||
private Label soundLabel = new Label("SOUND");
|
||||
private Label currentScoreLabel = new Label("SCORE");
|
||||
private Label highscoreLabel = new Label("HIGHSCORE");
|
||||
private Label pauseMenu = new Label("Pause");
|
||||
private Label labels[] = {nameLabel, acronymLabel, soundLabel, currentScoreLabel, highscoreLabel};
|
||||
private Label headlineLabels[] = {headline};
|
||||
|
||||
@@ -39,8 +36,10 @@ public class HappyBirdMain extends Application {
|
||||
private Button settingsButton = new Button("EINSTELLUNGEN");
|
||||
private Button startGameButton = new Button("SPIEL STARTEN");
|
||||
private Button menuButton = new Button("ZURÜCK");
|
||||
private Button pauseButton = new Button("PAUSE");
|
||||
private Button continueButton = new Button("WEITERSPIELEN");
|
||||
|
||||
private Button[] buttons = {startButton, highscoresButton, settingsButton, startGameButton, menuButton};
|
||||
private Button[] buttons = {startButton, highscoresButton, settingsButton, startGameButton, menuButton, pauseButton, continueButton};
|
||||
|
||||
private TextField name = new TextField();
|
||||
private TextField acronym = new TextField();
|
||||
@@ -54,6 +53,10 @@ public class HappyBirdMain extends Application {
|
||||
private Image upperPipe = new Image("file:src/main/resources/com/example/happy_bird/pics/PipeOben.png", 86, 300, false, false);
|
||||
private Image lowerPipe = new Image("file:src/main/resources/com/example/happy_bird/pics/PipeUnten.png", 86, 300, false, false);
|
||||
|
||||
private Pane pause = new Pane();
|
||||
|
||||
private boolean gameRuns;
|
||||
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
@@ -66,6 +69,39 @@ public class HappyBirdMain extends Application {
|
||||
stage.setTitle("Happy Bird");
|
||||
stage.setScene(scene);
|
||||
|
||||
generateMenueScene();
|
||||
|
||||
gameRuns = false;
|
||||
|
||||
/**ClickEvents:*/
|
||||
startButton.setOnAction(event -> {
|
||||
startButtonClick();
|
||||
});
|
||||
|
||||
settingsButton.setOnAction(event -> {
|
||||
settingsButtonClick();
|
||||
});
|
||||
|
||||
highscoresButton.setOnAction(event -> {
|
||||
highscoresButtonClick();
|
||||
});
|
||||
|
||||
menuButton.setOnAction(event -> {
|
||||
menuButtonClick();
|
||||
});
|
||||
|
||||
startGameButton.setOnAction(event -> {
|
||||
gameRuns = true;
|
||||
startGameButtonClick();
|
||||
});
|
||||
|
||||
|
||||
|
||||
stage.show();
|
||||
}
|
||||
|
||||
|
||||
public void generateMenueScene() {
|
||||
/**Bild für Hintergrund erstellen:*/
|
||||
Image image = new Image("file:src/main/resources/com/example/happy_bird/pics/Background.png");
|
||||
|
||||
@@ -85,6 +121,12 @@ public class HappyBirdMain extends Application {
|
||||
|
||||
|
||||
/**Labels erstellen:*/
|
||||
//nameLabel = new Label("NAME");
|
||||
//acronymLabel = new Label("KÜRZEL");
|
||||
//headline = new Label("HAPPY BIRD");
|
||||
//soundLabel = new Label("SOUND");
|
||||
//currentScoreLabel = new Label("SCORE");
|
||||
//highscoreLabel = new Label("HIGHSCORE");
|
||||
|
||||
|
||||
/**Labels in Arrays speichern:*/
|
||||
@@ -112,7 +154,11 @@ public class HappyBirdMain extends Application {
|
||||
|
||||
|
||||
/**Buttons erstellen:*/
|
||||
|
||||
//startButton = new Button("START");
|
||||
//highscoresButton = new Button("HIGHSCORES");
|
||||
//settingsButton = new Button("EINSTELLUNGEN");
|
||||
//startGameButton = new Button("SPIEL STARTEN");
|
||||
//menuButton = new Button("ZURÜCK");
|
||||
|
||||
/**Buttons in Array speichern:*/
|
||||
|
||||
@@ -136,10 +182,14 @@ public class HappyBirdMain extends Application {
|
||||
/**startGameButton unsichtbar*/
|
||||
startGameButton.setVisible(false);
|
||||
|
||||
/**continueButton unsichtbar*/
|
||||
continueButton.setVisible(false);
|
||||
|
||||
|
||||
|
||||
/**Textfelder erstellen:*/
|
||||
|
||||
//name = new TextField();
|
||||
//acronym = new TextField();
|
||||
|
||||
/**Textfelder in Array speichern:*/
|
||||
|
||||
@@ -158,31 +208,71 @@ public class HappyBirdMain extends Application {
|
||||
|
||||
|
||||
/**SoundSlider erstellen:*/
|
||||
|
||||
//soundSlider = new Slider();
|
||||
|
||||
/**SoundSlicer anpassen:*/
|
||||
soundSliderFormating(soundSlider, pane);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Generiert den GameScreen durch Ausblenden und
|
||||
* Sichtbarmachen der richtigen Buttons, Labels, ...
|
||||
*/
|
||||
public void generateGameScreen() {
|
||||
/**Headline-Label umbenennen*/
|
||||
nameLabel.setText("NAME: " + acronym.getText());
|
||||
|
||||
/**ClickEvents:*/
|
||||
startButton.setOnAction(event -> {
|
||||
startButtonClick();
|
||||
});
|
||||
/**Textfelder ausblenden*/
|
||||
for(TextField feld : inputFields) {
|
||||
feld.setVisible(false);
|
||||
}
|
||||
|
||||
settingsButton.setOnAction(event -> {
|
||||
settingsButtonClick();
|
||||
});
|
||||
/**Labels ausblenden*/
|
||||
for (Label label : labels )
|
||||
{
|
||||
label.setVisible(false);
|
||||
}
|
||||
headline.setVisible(false);
|
||||
|
||||
highscoresButton.setOnAction(event -> {
|
||||
highscoresButtonClick();
|
||||
});
|
||||
/**nameLabel, currentScoreLabel und highscoreLabel positionieren und sichtbar machen*/
|
||||
nameLabel.setLayoutX(10);
|
||||
nameLabel.setLayoutY(10);
|
||||
nameLabel.setVisible(true);
|
||||
|
||||
menuButton.setOnAction(event -> {
|
||||
menuButtonClick();
|
||||
});
|
||||
currentScoreLabel.setLayoutX(540);
|
||||
currentScoreLabel.setLayoutY(10);
|
||||
currentScoreLabel.setVisible(true);
|
||||
|
||||
stage.show();
|
||||
highscoreLabel.setLayoutX(540);
|
||||
highscoreLabel.setLayoutY(70);
|
||||
highscoreLabel.setVisible(true);
|
||||
|
||||
/**Übrige Buttons ausblenden*/
|
||||
startGameButton.setVisible(false);
|
||||
menuButton.setVisible(false);
|
||||
|
||||
/**Pause-Button positionieren und sichtbar machen*/
|
||||
pauseButton.setLayoutX(575);
|
||||
pauseButton.setLayoutY(625);
|
||||
pauseButton.setVisible(true);
|
||||
|
||||
/**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);
|
||||
}
|
||||
|
||||
/***
|
||||
@@ -288,6 +378,20 @@ public class HappyBirdMain extends Application {
|
||||
slider.setVisible(false);
|
||||
}
|
||||
|
||||
/***
|
||||
* Formatiert den PauseScreen
|
||||
*/
|
||||
public void pauseScreenFormating() {
|
||||
pause.setLayoutX(200);
|
||||
pause.setLayoutY(100);
|
||||
pause.setPrefSize(400, 500);
|
||||
pause.setStyle("-fx-background-color: #DED894; " +
|
||||
"-fx-border-width: 5px;" +
|
||||
"-fx-border-color: #543847;" +
|
||||
"-fx-border-radius: 15px;" +
|
||||
"-fx-background-radius: 20px;");
|
||||
}
|
||||
|
||||
/***
|
||||
* Hauptmenü wird ausgeblendet, Nameneingabe folgt
|
||||
*/
|
||||
@@ -367,40 +471,68 @@ public class HappyBirdMain extends Application {
|
||||
* Startet Spiel nach Namenseingabe
|
||||
*/
|
||||
public void startGameButtonClick() {
|
||||
nameLabel.setText("NAME: " + acronym.getText());
|
||||
for(TextField feld : inputFields) {
|
||||
feld.setVisible(false);
|
||||
generateGameScreen();
|
||||
|
||||
|
||||
/**Klick auf den Pause-Button, um das Pause-Menü aufzurufen*/
|
||||
pauseButton.setOnAction(event -> {
|
||||
//
|
||||
if(gameRuns) {
|
||||
gameRuns = false;
|
||||
} else {
|
||||
gameRuns = true;
|
||||
}
|
||||
pauseButtonClick(gameRuns);
|
||||
});
|
||||
|
||||
/**ESC-Tast drücken, um das Pause-Menü aufzurufen*/
|
||||
scene.setOnKeyPressed(e -> {
|
||||
if(e.getCode() == KeyCode.ESCAPE) {
|
||||
if(gameRuns) {
|
||||
gameRuns = false;
|
||||
pauseButtonClick(false);
|
||||
} else {
|
||||
gameRuns = true;
|
||||
pauseButtonClick(true);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/***
|
||||
* 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) {
|
||||
/**PauseScreen ausblenden*/
|
||||
pause.setVisible(true);
|
||||
pauseButton.setVisible(false);
|
||||
highscoresButton.setVisible(true);
|
||||
settingsButton.setVisible(true);
|
||||
highscoresButton.setLayoutX(100);
|
||||
settingsButton.setLayoutX(100);
|
||||
|
||||
/**Zum PauseScreen hinzufügen*/
|
||||
pause.getChildren().add(settingsButton);
|
||||
pause.getChildren().add(highscoresButton);
|
||||
pane.getChildren().add(pause);
|
||||
} else {
|
||||
/**PauseScreen aufrufen/ sichtbar machen*/
|
||||
pause.setVisible(false);
|
||||
|
||||
pauseButton.setVisible(true);
|
||||
highscoresButton.setVisible(false);
|
||||
settingsButton.setVisible(false);
|
||||
highscoresButton.setLayoutX(300);
|
||||
settingsButton.setLayoutX(300);
|
||||
|
||||
/**Vom PauseScreen entfernen*/
|
||||
pause.getChildren().remove(settingsButton);
|
||||
pause.getChildren().remove(highscoresButton);
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
@@ -7,13 +7,10 @@
|
||||
|
||||
<StackPane prefHeight="800.0" prefWidth="700.0" xmlns="http://javafx.com/javafx/11.0.2" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.example.happy_bird.HappyBird" back >
|
||||
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
<ImageView>
|
||||
<image>
|
||||
<Image url="@pics/Background.png"></Image>
|
||||
</image>
|
||||
</ImageView>
|
||||
|
||||
>>>>>>> 5db5b6bb195a2b7d1296e7d3f9b98d6c75dba2c2
|
||||
</StackPane>
|
||||
|
Reference in New Issue
Block a user