Compare commits
	
		
			52 Commits
		
	
	
		
			d4ba26f435
			...
			master
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| d707be3e4c | |||
| 88b0ba5d05 | |||
| 4f2eeb5040 | |||
| a60eb17230 | |||
| 0f2352e003 | |||
| e21b4c0f2d | |||
| d835ec3460 | |||
| 635aef047a | |||
| f2f88c404d | |||
| 8f5a4e6a74 | |||
| fcb650ffef | |||
| 79db8a088a | |||
| b37993d9a2 | |||
| 1f0fedeaac | |||
| 43ba9226e2 | |||
| 3610c3fb7a | |||
| 98bcfec0fd | |||
| af010b5bd8 | |||
| b5daf848c4 | |||
| 46bf46f92c | |||
| 5894de5567 | |||
| 680a80d210 | |||
| 1cd92601e1 | |||
| 241bd0f85b | |||
| e818be6c17 | |||
| 8efcc29244 | |||
| 49e63e3d3b | |||
| e2457886c8 | |||
| a348fb03a5 | |||
| 380d469010 | |||
| 775085a1ab | |||
| e494439b1c | |||
| c55f6866b8 | |||
| 0b45380f15 | |||
| ac3b2908f3 | |||
| a9f80b6f6e | |||
| 057d3c3b50 | |||
| ac4ab16654 | |||
| 1f544960ac | |||
| 7f359cb01f | |||
| 4f9de09893 | |||
| e2e726adfb | |||
| db77cf584c | |||
| 03dcf9e8a3 | |||
| 770e6916b5 | |||
| bdd1c68ab9 | |||
| c6bf25bb6f | |||
| 6c7c27bc3f | |||
| edf4ca2595 | |||
| a8a66beb54 | |||
| 8507e0f681 | |||
| be13801a60 | 
							
								
								
									
										2
									
								
								Happy_Bird/.idea/Happy_Bird.iml
									
									
									
										generated
									
									
									
								
							
							
						
						@@ -1,2 +0,0 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<module type="JAVA_MODULE" version="4" />
 | 
			
		||||
							
								
								
									
										5
									
								
								Happy_Bird/.idea/compiler.xml
									
									
									
										generated
									
									
									
								
							
							
						
						@@ -3,4 +3,9 @@
 | 
			
		||||
  <component name="CompilerConfiguration">
 | 
			
		||||
    <bytecodeTargetLevel target="15" />
 | 
			
		||||
  </component>
 | 
			
		||||
  <component name="JavacSettings">
 | 
			
		||||
    <option name="ADDITIONAL_OPTIONS_OVERRIDE">
 | 
			
		||||
      <module name="Happy_Bird.main" options="--add-exports java.base/jdk.internal.module=com.example.happy_bird" />
 | 
			
		||||
    </option>
 | 
			
		||||
  </component>
 | 
			
		||||
</project>
 | 
			
		||||
							
								
								
									
										5
									
								
								Happy_Bird/.idea/jarRepositories.xml
									
									
									
										generated
									
									
									
								
							
							
						
						@@ -16,5 +16,10 @@
 | 
			
		||||
      <option name="name" value="MavenRepo" />
 | 
			
		||||
      <option name="url" value="https://repo.maven.apache.org/maven2/" />
 | 
			
		||||
    </remote-repository>
 | 
			
		||||
    <remote-repository>
 | 
			
		||||
      <option name="id" value="BintrayJCenter" />
 | 
			
		||||
      <option name="name" value="BintrayJCenter" />
 | 
			
		||||
      <option name="url" value="https://jcenter.bintray.com/" />
 | 
			
		||||
    </remote-repository>
 | 
			
		||||
  </component>
 | 
			
		||||
</project>
 | 
			
		||||
							
								
								
									
										10
									
								
								Happy_Bird/.idea/runConfigurations.xml
									
									
									
										generated
									
									
									
								
							
							
						
						@@ -1,10 +0,0 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<project version="4">
 | 
			
		||||
  <component name="RunConfigurationProducerService">
 | 
			
		||||
    <option name="ignoredProducers">
 | 
			
		||||
      <set>
 | 
			
		||||
        <option value="com.android.tools.idea.compose.preview.runconfiguration.ComposePreviewRunConfigurationProducer" />
 | 
			
		||||
      </set>
 | 
			
		||||
    </option>
 | 
			
		||||
  </component>
 | 
			
		||||
</project>
 | 
			
		||||
@@ -9,6 +9,7 @@ version '1.0-SNAPSHOT'
 | 
			
		||||
 | 
			
		||||
repositories {
 | 
			
		||||
    mavenCentral()
 | 
			
		||||
		jcenter()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ext {
 | 
			
		||||
@@ -36,6 +37,7 @@ dependencies {
 | 
			
		||||
 | 
			
		||||
    testImplementation("org.junit.jupiter:junit-jupiter-api:${junitVersion}")
 | 
			
		||||
    testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:${junitVersion}")
 | 
			
		||||
		implementation 'org.mariadb.jdbc:mariadb-java-client:2.1.2'
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
test {
 | 
			
		||||
 
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 114 KiB  | 
| 
		 After Width: | Height: | Size: 14 KiB  | 
| 
		 After Width: | Height: | Size: 54 KiB  | 
| 
		 After Width: | Height: | Size: 5.5 KiB  | 
| 
		 After Width: | Height: | Size: 4.9 KiB  | 
| 
		 After Width: | Height: | Size: 4.6 KiB  | 
| 
		 Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 65 KiB  | 
@@ -1,21 +0,0 @@
 | 
			
		||||
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) {
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,239 @@
 | 
			
		||||
package com.example.happy_bird;
 | 
			
		||||
 | 
			
		||||
import javafx.scene.control.Button;
 | 
			
		||||
import javafx.scene.control.Label;
 | 
			
		||||
import javafx.scene.control.Slider;
 | 
			
		||||
import javafx.scene.control.TextField;
 | 
			
		||||
import javafx.scene.image.Image;
 | 
			
		||||
import javafx.scene.layout.*;
 | 
			
		||||
import javafx.scene.text.TextAlignment;
 | 
			
		||||
 | 
			
		||||
public class FormatingClass {
 | 
			
		||||
    /***
 | 
			
		||||
     * leerer Konstruktor
 | 
			
		||||
     */
 | 
			
		||||
    public FormatingClass() { }
 | 
			
		||||
 | 
			
		||||
    /*** Alteköster
 | 
			
		||||
     * 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) {
 | 
			
		||||
            button.setPrefSize(200, 50);
 | 
			
		||||
 | 
			
		||||
            button.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(button);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /*** Alteköster
 | 
			
		||||
     * 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; " +
 | 
			
		||||
                    "-fx-border-width: 5px;" +
 | 
			
		||||
                    "-fx-border-color: #543847;" +
 | 
			
		||||
                    "-fx-font-weight: bold;" +
 | 
			
		||||
                    "-fx-alignment: center;" +
 | 
			
		||||
                    "-fx-background-radius: 20px;" +
 | 
			
		||||
                    "-fx-border-radius: 15px;");
 | 
			
		||||
 | 
			
		||||
            pane.getChildren().add(label);
 | 
			
		||||
 | 
			
		||||
            label.setVisible(false);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /*** Alteköster
 | 
			
		||||
     * 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);
 | 
			
		||||
 | 
			
		||||
            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;");
 | 
			
		||||
 | 
			
		||||
            pane.getChildren().add(label);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /*** Alteköster
 | 
			
		||||
     * 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;");
 | 
			
		||||
 | 
			
		||||
            pane.getChildren().add(field);
 | 
			
		||||
 | 
			
		||||
            field.setVisible(false);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /*** Alteköster
 | 
			
		||||
     * 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);
 | 
			
		||||
 | 
			
		||||
        pane.getChildren().add(slider);
 | 
			
		||||
 | 
			
		||||
        slider.setVisible(false);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /*** Alteköster
 | 
			
		||||
     * Formatiert den PauseScreen
 | 
			
		||||
     */
 | 
			
		||||
    public void pauseScreenFormating(Pane pause, Label pauseMenuLabel, Label soundLabelPause) {
 | 
			
		||||
        /*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;");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /*** Pape
 | 
			
		||||
     * formatiert den End-Screen
 | 
			
		||||
     */
 | 
			
		||||
    public void endScreenFormating(Pane endScreen, Label endScreenHeadline, Label currentScoreEndscreenLabel) {
 | 
			
		||||
        /*Endscreen-Pane formatieren*/
 | 
			
		||||
        endScreen.setPrefSize(400, 500);
 | 
			
		||||
        endScreen.setLayoutX(200);
 | 
			
		||||
        endScreen.setLayoutY(100);
 | 
			
		||||
        endScreen.setStyle("-fx-background-color: #DED894; " +
 | 
			
		||||
                "-fx-border-width: 5px;" +
 | 
			
		||||
                "-fx-border-color: #543847;" +
 | 
			
		||||
                "-fx-border-radius: 15px;" +
 | 
			
		||||
                "-fx-background-radius: 20px;");
 | 
			
		||||
 | 
			
		||||
        endScreenHeadline.setPrefSize(300,50);
 | 
			
		||||
        endScreenHeadline.setLayoutX(50);
 | 
			
		||||
        endScreenHeadline.setLayoutY(10);
 | 
			
		||||
        endScreenHeadline.setStyle("-fx-background-color: #DED894; " +
 | 
			
		||||
                "-fx-text-fill: #000000; " +
 | 
			
		||||
                "-fx-font-size: 35px; " +
 | 
			
		||||
                "-fx-font-weight: bold;" +
 | 
			
		||||
                "-fx-alignment: center;");
 | 
			
		||||
 | 
			
		||||
        currentScoreEndscreenLabel.setPrefSize(300,50);
 | 
			
		||||
        currentScoreEndscreenLabel.setLayoutX(50);
 | 
			
		||||
        currentScoreEndscreenLabel.setLayoutY(100);
 | 
			
		||||
        currentScoreEndscreenLabel.setStyle("-fx-background-color: #DED894; " +
 | 
			
		||||
                "-fx-text-fill: #000000; " +
 | 
			
		||||
                "-fx-font-size: 35px; " +
 | 
			
		||||
                "-fx-font-weight: bold;" +
 | 
			
		||||
                "-fx-alignment: center;");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /*** Alteköster
 | 
			
		||||
     * Erstellt ein neues BackgroundImage aus einer Source für ein .png
 | 
			
		||||
     * @param img   Source eines .png
 | 
			
		||||
     * @return      backgroundImage
 | 
			
		||||
     */
 | 
			
		||||
    public BackgroundImage backgroundFormating(String img) {
 | 
			
		||||
        /*Bild für Hintergrund erstellen:*/
 | 
			
		||||
        Image image = new Image(img);
 | 
			
		||||
 | 
			
		||||
        /*Hintergrund erstellen:*/
 | 
			
		||||
        BackgroundImage backgroundImage = new BackgroundImage(
 | 
			
		||||
                image,
 | 
			
		||||
                BackgroundRepeat.NO_REPEAT,
 | 
			
		||||
                BackgroundRepeat.NO_REPEAT,
 | 
			
		||||
                BackgroundPosition.DEFAULT,
 | 
			
		||||
                BackgroundSize.DEFAULT
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        return backgroundImage;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /*** Alteköster
 | 
			
		||||
     * Formatiert die Buttons, mit denen man das Hintergrundbild ändern kann
 | 
			
		||||
     * @param backgroundButtons Array der Buttons
 | 
			
		||||
     * @param pane              Pane, auf der die Buttons angezeigt werden sollen
 | 
			
		||||
     */
 | 
			
		||||
    public void backgroundButtonsFormating(Button[] backgroundButtons, Pane pane) {
 | 
			
		||||
        int xPosition = 150;
 | 
			
		||||
 | 
			
		||||
        for(int i=0; i<backgroundButtons.length; i++) {
 | 
			
		||||
            backgroundButtons[i].setPrefSize(200, 175);
 | 
			
		||||
            backgroundButtons[i].setLayoutY(400);
 | 
			
		||||
            backgroundButtons[i].setLayoutX(xPosition);
 | 
			
		||||
            xPosition += 300;
 | 
			
		||||
 | 
			
		||||
            /*Source als String*/
 | 
			
		||||
            String img = "file:src/main/resources/com/example/happy_bird/pics/Background"+i+"button.png";
 | 
			
		||||
 | 
			
		||||
            /*Hintergrund zu Pane hinzufügen:*/
 | 
			
		||||
            Background background = new Background(backgroundFormating(img));
 | 
			
		||||
 | 
			
		||||
            backgroundButtons[i].setBackground(background);
 | 
			
		||||
 | 
			
		||||
            backgroundButtons[i].setStyle("-fx-border-width: 7px;" +
 | 
			
		||||
                    "-fx-border-insets: -7;" +
 | 
			
		||||
                    "-fx-border-color: #FFFFFF;" +
 | 
			
		||||
                    "-fx-border-radius: 15px;");
 | 
			
		||||
 | 
			
		||||
            pane.getChildren().add(backgroundButtons[i]);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,26 +0,0 @@
 | 
			
		||||
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;
 | 
			
		||||
import javafx.scene.control.TextField;
 | 
			
		||||
import javafx.scene.control.Slider;
 | 
			
		||||
import javafx.scene.image.*;
 | 
			
		||||
import javafx.scene.image.Image;
 | 
			
		||||
import javafx.scene.layout.*;
 | 
			
		||||
import javafx.scene.text.TextAlignment;
 | 
			
		||||
import javafx.stage.Stage;
 | 
			
		||||
import java.awt.*;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
 | 
			
		||||
public class GameScreen extends HappyBirdMain
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -1,9 +0,0 @@
 | 
			
		||||
package com.example.happy_bird;
 | 
			
		||||
 | 
			
		||||
import javafx.scene.control.Button;
 | 
			
		||||
import javafx.scene.control.Label;
 | 
			
		||||
import javafx.scene.control.TextField;
 | 
			
		||||
 | 
			
		||||
public class HappyBird extends HappyBirdMain {
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -1,23 +0,0 @@
 | 
			
		||||
package com.example.happy_bird;
 | 
			
		||||
 | 
			
		||||
import javafx.application.Application;
 | 
			
		||||
import javafx.fxml.FXMLLoader;
 | 
			
		||||
import javafx.scene.Scene;
 | 
			
		||||
import javafx.stage.Stage;
 | 
			
		||||
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
 | 
			
		||||
public class HelloApplication extends Application {
 | 
			
		||||
    @Override
 | 
			
		||||
    public void start(Stage stage) throws IOException {
 | 
			
		||||
        FXMLLoader fxmlLoader = new FXMLLoader(HelloApplication.class.getResource("hello-view.fxml"));
 | 
			
		||||
        Scene scene = new Scene(fxmlLoader.load(), 320, 240);
 | 
			
		||||
        stage.setTitle("Hello!");
 | 
			
		||||
        stage.setScene(scene);
 | 
			
		||||
        stage.show();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static void main(String[] args) {
 | 
			
		||||
        launch();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,14 +0,0 @@
 | 
			
		||||
package com.example.happy_bird;
 | 
			
		||||
 | 
			
		||||
import javafx.fxml.FXML;
 | 
			
		||||
import javafx.scene.control.Label;
 | 
			
		||||
 | 
			
		||||
public class HelloController {
 | 
			
		||||
    @FXML
 | 
			
		||||
    private Label welcomeText;
 | 
			
		||||
 | 
			
		||||
    @FXML
 | 
			
		||||
    protected void onHelloButtonClick() {
 | 
			
		||||
        welcomeText.setText("Welcome to JavaFX Application!");
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
package com.example.happy_bird;
 | 
			
		||||
 | 
			
		||||
import java.beans.Statement;
 | 
			
		||||
/** Pape */
 | 
			
		||||
import java.sql.*;
 | 
			
		||||
public class MariaDB
 | 
			
		||||
{
 | 
			
		||||
@@ -13,10 +13,36 @@ public class MariaDB
 | 
			
		||||
 | 
			
		||||
    public MariaDB()
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
        username="root";
 | 
			
		||||
        pw="HappyBird1";
 | 
			
		||||
        url="jdbc:mariadb://localhost:3306/happybird";
 | 
			
		||||
        driver="org.mariadb.jdbc.Driver";
 | 
			
		||||
        try {
 | 
			
		||||
            con = DriverManager.getConnection("jdbc:mariadb://localhost:3306/DB?user=root&password=HappyBird1");
 | 
			
		||||
        } catch (SQLException e) {
 | 
			
		||||
            Class.forName(driver);
 | 
			
		||||
            con=DriverManager.getConnection(url, username, pw);
 | 
			
		||||
            st=con.createStatement();
 | 
			
		||||
            System.out.println("Connection is successful");
 | 
			
		||||
        } catch (Exception e) {
 | 
			
		||||
            System.out.println("Fehler in der Verbindung");
 | 
			
		||||
            e.printStackTrace();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
        try
 | 
			
		||||
        {
 | 
			
		||||
            con = DriverManager.getConnection("jdbc:mariadb://localhost:3306/happybird?user=root&password=HappyBird1");
 | 
			
		||||
            st= (Statement) con.createStatement();
 | 
			
		||||
            driver="org.mariadb.jdbc.Driver";
 | 
			
		||||
            System.out.println("Connection is successful");
 | 
			
		||||
        }
 | 
			
		||||
        catch (Exception e)
 | 
			
		||||
        {
 | 
			
		||||
            System.out.println("Fehler in der Verbindung");
 | 
			
		||||
            e.printStackTrace();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 */
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,104 +0,0 @@
 | 
			
		||||
package com.example.happy_bird;
 | 
			
		||||
 | 
			
		||||
import java.awt.*;
 | 
			
		||||
import java.awt.image.BufferedImage;
 | 
			
		||||
import java.awt.image.ImageObserver;
 | 
			
		||||
 | 
			
		||||
public class Pipe extends SpielObjekt {
 | 
			
		||||
 | 
			
		||||
    private java.awt.Image lowerPipe;
 | 
			
		||||
    // private java.awt.Image lowerPipe = new java.awt.Image("file:src/main/resources/com/example/happy_bird/pics/PipeUnten.png", 86, 300, false, false);
 | 
			
		||||
    private int xWert = 0, yWert = 0;
 | 
			
		||||
 | 
			
		||||
    public Pipe(int xWert, int yWert) {
 | 
			
		||||
        super(xWert, yWert);
 | 
			
		||||
        lowerPipe = Toolkit.getDefaultToolkit().getImage(this.getClass().getResource("com/example/happy_bird/"));
 | 
			
		||||
        //scale lowerPipe(initialWidth, initialHeight)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void scaleTopPipe(int width, int height) {
 | 
			
		||||
        lowerPipe = lowerPipe.getScaledInstance(width, height, Image.SCALE_SMOOTH);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Image getPipe() {
 | 
			
		||||
        return getPipe();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Method um die Breite des BottomPipe-Objekts zu erhalten
 | 
			
		||||
     * @return int
 | 
			
		||||
     */
 | 
			
		||||
    public int getWidth(int width) {
 | 
			
		||||
        return lowerPipe.getWidth(null);
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * Methode um die Höhe des BottomPipe-Objekts zu erhalten
 | 
			
		||||
     * @return int
 | 
			
		||||
     */
 | 
			
		||||
    public int getHeight(int height) {
 | 
			
		||||
        return lowerPipe.getHeight(null);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Methode zum Festlegen der x-Position des BottomPipe-Objekts
 | 
			
		||||
     * @param x
 | 
			
		||||
     */
 | 
			
		||||
    public void setX(int x) {
 | 
			
		||||
        xWert = x;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Methode zum Abrufen der x-Position des BottomPipe-Objekts
 | 
			
		||||
     * @return int
 | 
			
		||||
     */
 | 
			
		||||
    public int getX() {
 | 
			
		||||
        return xWert;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Methode zum Festlegen der y-Position des BottomPipe-Objekts
 | 
			
		||||
     * @param y
 | 
			
		||||
     */
 | 
			
		||||
    public void setY(int y) {
 | 
			
		||||
        yWert = y;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Methode zum Abrufen der y-Position des BottomPipe-Objekts
 | 
			
		||||
     * @return int
 | 
			
		||||
     */
 | 
			
		||||
    public int getY() {
 | 
			
		||||
        return yWert;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Methode zum Erfassen eines Rechtecks, das das Bild des BottomPipe umreißt
 | 
			
		||||
     * @return Rechteck, das die Position des BottomPipe auf dem Bildschirm umreißt
 | 
			
		||||
     */
 | 
			
		||||
    public Rectangle getRectangle() {
 | 
			
		||||
        return (new Rectangle(xWert, yWert, lowerPipe.getWidth(null), lowerPipe.getHeight(null)));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Methode zum Erfassen eines BufferedImage, das das Bildobjekt der TopPipe darstellt
 | 
			
		||||
     * @return TopPipe's BufferedImage-Objekt
 | 
			
		||||
     */
 | 
			
		||||
    public BufferedImage getBI() {
 | 
			
		||||
        BufferedImage bi = new BufferedImage(lowerPipe.getWidth(null), lowerPipe.getHeight(null), BufferedImage.TYPE_INT_ARGB);
 | 
			
		||||
        Graphics g = bi.getGraphics();
 | 
			
		||||
        g.drawImage(lowerPipe, 0, 0, null);
 | 
			
		||||
        g.dispose();
 | 
			
		||||
        return bi;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void tick() {
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void render(Graphics2D g, ImageObserver obs) {
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,103 +0,0 @@
 | 
			
		||||
package com.example.happy_bird;
 | 
			
		||||
 | 
			
		||||
import java.awt.Graphics;
 | 
			
		||||
import java.awt.Rectangle;
 | 
			
		||||
import java.awt.Toolkit;
 | 
			
		||||
import java.awt.Image;
 | 
			
		||||
import java.awt.image.BufferedImage;
 | 
			
		||||
 | 
			
		||||
public class PipeTop {
 | 
			
		||||
    //global variables
 | 
			
		||||
    private Image topPipe;
 | 
			
		||||
    private int xLoc = 0, yLoc = 0;
 | 
			
		||||
 | 
			
		||||
    public PipeTop(int initialWidth, int initialHeight) {
 | 
			
		||||
        topPipe = Toolkit.getDefaultToolkit().getImage(this.getClass().getResource("resources/tube_top.png"));
 | 
			
		||||
        scaleTopPipe(initialWidth, initialHeight);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Methode zum Skalieren des topPipe-Sprites in die gewünschten Dimensionen
 | 
			
		||||
     * @param width Die gewünschte Breite der topPipe
 | 
			
		||||
     * @param height Die gewünschte Höhe der topPipe
 | 
			
		||||
     */
 | 
			
		||||
    public void scaleTopPipe(int width, int height) {
 | 
			
		||||
        topPipe = topPipe.getScaledInstance(width, height, Image.SCALE_SMOOTH);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Getter-Methode für das TopPipe-Objekt.
 | 
			
		||||
     * @return-Image
 | 
			
		||||
     */
 | 
			
		||||
    public Image getPipe() {
 | 
			
		||||
        return topPipe;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Methode zum Abrufen der Breite des TopPipe-Objekts
 | 
			
		||||
     * @return int
 | 
			
		||||
     */
 | 
			
		||||
    public int getWidth() {
 | 
			
		||||
        return topPipe.getWidth(null);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Methode, um die Höhe des TopPipe-Objekts zu erhalten
 | 
			
		||||
     * @return int
 | 
			
		||||
     */
 | 
			
		||||
    public int getHeight() {
 | 
			
		||||
        return topPipe.getHeight(null);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Methode zum Festlegen der x-Position des TopPipe-Objekts
 | 
			
		||||
     * @param x
 | 
			
		||||
     */
 | 
			
		||||
    public void setX(int x) {
 | 
			
		||||
        xLoc = x;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Methode zum Abrufen der x-Position des TopPipe-Objekts
 | 
			
		||||
     * @return int
 | 
			
		||||
     */
 | 
			
		||||
    public int getX() {
 | 
			
		||||
        return xLoc;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Methode zum Festlegen der y-Position des TopPipe-Objekts
 | 
			
		||||
     * @param y
 | 
			
		||||
     */
 | 
			
		||||
    public void setY(int y) {
 | 
			
		||||
        yLoc = y;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Methode zum Abrufen der y-Position des TopPipe-Objekts
 | 
			
		||||
     * @return int
 | 
			
		||||
     */
 | 
			
		||||
    public int getY() {
 | 
			
		||||
        return yLoc;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Methode zum Erfassen eines Rechtecks, das das Bild der TopPipe umreißt
 | 
			
		||||
     * @return Rechteck, das die Position der TopPipe auf dem Bildschirm umreißt
 | 
			
		||||
     */
 | 
			
		||||
    public Rectangle getRectangle() {
 | 
			
		||||
        return (new Rectangle(xLoc, yLoc, topPipe.getWidth(null), topPipe.getHeight(null)));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Methode zum Erfassen eines BufferedImage, das das Bildobjekt der TopPipe darstellt
 | 
			
		||||
     * @return BufferedImage-Objekt von TopPipe
 | 
			
		||||
     */
 | 
			
		||||
    public BufferedImage getBI() {
 | 
			
		||||
        BufferedImage bi = new BufferedImage(topPipe.getWidth(null), topPipe.getHeight(null), BufferedImage.TYPE_INT_ARGB);
 | 
			
		||||
        Graphics g = bi.getGraphics();
 | 
			
		||||
        g.drawImage(topPipe, 0, 0, null);
 | 
			
		||||
        g.dispose();
 | 
			
		||||
        return bi;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,80 +0,0 @@
 | 
			
		||||
package com.example.happy_bird;
 | 
			
		||||
import java.awt.Graphics2D;
 | 
			
		||||
import java.awt.Image;
 | 
			
		||||
import java.awt.image.ImageObserver;
 | 
			
		||||
 | 
			
		||||
public abstract class SpielObjekt {
 | 
			
		||||
    private int xWert;
 | 
			
		||||
    private int yWert;
 | 
			
		||||
    private int fxWert;
 | 
			
		||||
    private int fyWert;
 | 
			
		||||
    private int breite;
 | 
			
		||||
    private int hoehe;
 | 
			
		||||
    private Image bild;
 | 
			
		||||
 | 
			
		||||
    public SpielObjekt(int xWert, int yWert) {
 | 
			
		||||
        this.xWert = xWert;
 | 
			
		||||
        this.yWert = yWert;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public int getyWert() {
 | 
			
		||||
        return yWert;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setyWert(int yWert) {
 | 
			
		||||
        this.yWert = yWert;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public int getxWert() {
 | 
			
		||||
        return xWert;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setxWert(int xWert) {
 | 
			
		||||
        this.xWert = xWert;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public int getFxWert() {
 | 
			
		||||
        return fxWert;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setFxWert(int fxWert) {
 | 
			
		||||
        this.fxWert = fxWert;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public int getFyWert() {
 | 
			
		||||
        return fyWert;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setFyWert(int fyWert) {
 | 
			
		||||
        this.fyWert = fyWert;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public int getBreite() {
 | 
			
		||||
        return breite;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setBreite(int breite) {
 | 
			
		||||
        this.breite = breite;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public int getHoehe() {
 | 
			
		||||
        return hoehe;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setHoehe(int hoehe) {
 | 
			
		||||
        this.hoehe = hoehe;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Image getBild() {
 | 
			
		||||
        return bild;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setBild(Image bild) {
 | 
			
		||||
        this.bild = bild;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    public abstract void tick();
 | 
			
		||||
 | 
			
		||||
    public abstract void render(Graphics2D g, ImageObserver obs);
 | 
			
		||||
}
 | 
			
		||||
@@ -1,10 +0,0 @@
 | 
			
		||||
package com.example.happy_bird;
 | 
			
		||||
 | 
			
		||||
public class TopClass {
 | 
			
		||||
 | 
			
		||||
    private static final int PIPE_GAP = 0;
 | 
			
		||||
    private static final int PIPE_WIDTH = 0;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -1,16 +0,0 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
 | 
			
		||||
<?import javafx.geometry.Insets?>
 | 
			
		||||
<?import javafx.scene.control.Label?>
 | 
			
		||||
<?import javafx.scene.layout.VBox?>
 | 
			
		||||
 | 
			
		||||
<?import javafx.scene.control.Button?>
 | 
			
		||||
<VBox alignment="CENTER" spacing="20.0" xmlns:fx="http://javafx.com/fxml"
 | 
			
		||||
      fx:controller="com.example.happy_bird.HelloController">
 | 
			
		||||
    <padding>
 | 
			
		||||
        <Insets bottom="20.0" left="20.0" right="20.0" top="20.0"/>
 | 
			
		||||
    </padding>
 | 
			
		||||
 | 
			
		||||
    <Label fx:id="welcomeText"/>
 | 
			
		||||
    <Button text="Hello!" onAction="#onHelloButtonClick"/>
 | 
			
		||||
</VBox>
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 114 KiB  | 
| 
		 After Width: | Height: | Size: 14 KiB  | 
| 
		 After Width: | Height: | Size: 54 KiB  | 
| 
		 After Width: | Height: | Size: 5.5 KiB  | 
| 
		 After Width: | Height: | Size: 4.9 KiB  | 
| 
		 After Width: | Height: | Size: 4.6 KiB  | 
| 
		 Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 65 KiB  | 
| 
		 Before Width: | Height: | Size: 126 KiB  | 
							
								
								
									
										14
									
								
								SQL-Queries.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,14 @@
 | 
			
		||||
SQL-Abfragen:
 | 
			
		||||
 | 
			
		||||
Highscores:
 | 
			
		||||
SELECT * FROM happybirddb ORDER BY punkte DESC LIMIT 5;
 | 
			
		||||
Dann Ausgabe auf dem Bildschirm
 | 
			
		||||
 | 
			
		||||
Einfügen in die DB:
 | 
			
		||||
INSERT INTO HappyBirdDB (name, kuerzel, punkte) VALUES ('playername', 'playerkuerzel', points);
 | 
			
		||||
//playername, playerkuerzel, points sind Variablen
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Maximale Punkte des Spielers:
 | 
			
		||||
SELECT MAX(punkte) FROM happybirddb WHERE kuerzel = 'playerkuerzel';
 | 
			
		||||
 | 
			
		||||