From 758815af2b62619c5bc93f9cbc592e58eb1c2fce Mon Sep 17 00:00:00 2001
From: koz01 <koz01@PCFEIB213-100.msad.vsb.cz>
Date: Wed, 26 Oct 2022 09:59:02 +0200
Subject: [PATCH] Controller, GameView
---
src/main/java/lab/App.java | 16 ++++++------
src/main/java/lab/GameController.java | 20 ++++++++++++---
src/main/resources/lab/GameView.fxml | 36 +++++++++++++++++++++++++++
3 files changed, 59 insertions(+), 13 deletions(-)
create mode 100644 src/main/resources/lab/GameView.fxml
diff --git a/src/main/java/lab/App.java b/src/main/java/lab/App.java
index fc4398c..f16a4d9 100644
--- a/src/main/java/lab/App.java
+++ b/src/main/java/lab/App.java
@@ -1,9 +1,9 @@
package lab;
import javafx.application.Application;
-import javafx.scene.Group;
+import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
-import javafx.scene.canvas.Canvas;
+import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
import javafx.stage.WindowEvent;
@@ -17,25 +17,23 @@ public class App extends Application {
launch(args);
}
- private Canvas canvas;
private GameController controller;
+
@Override
public void start(Stage primaryStage) {
try {
//Construct a main window with a canvas.
-
- Group root = new Group();
- canvas = new Canvas(800, 600);
- root.getChildren().add(canvas);
+ FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("GameView.fxml"));
+ BorderPane root = fxmlLoader.load();
Scene scene = new Scene(root);
-
+ controller = fxmlLoader.getController();
primaryStage.setScene(scene);
primaryStage.resizableProperty().set(false);
primaryStage.setTitle("Java 1 - 5th laboratory");
primaryStage.show();
- controller = new GameController(canvas);
+
controller.startGame();
//Exit program when main window is closed
primaryStage.setOnCloseRequest(this::exitProgram);
diff --git a/src/main/java/lab/GameController.java b/src/main/java/lab/GameController.java
index 5385570..ec3ebdc 100644
--- a/src/main/java/lab/GameController.java
+++ b/src/main/java/lab/GameController.java
@@ -1,17 +1,29 @@
package lab;
import javafx.animation.AnimationTimer;
+import javafx.fxml.FXML;
import javafx.scene.canvas.Canvas;
+import javafx.scene.control.Button;
+import javafx.scene.control.Slider;
public class GameController {
private World world;
+
+ @FXML
private Canvas canvas;
- private AnimationTimer animationTimer;
- public GameController(Canvas canvas) {
- this.canvas = canvas;
- }
+ @FXML
+ private Slider angleSlider;
+
+ @FXML
+ private Button fireButton;
+
+ @FXML
+ private Slider forceSlider;
+
+
+ private AnimationTimer animationTimer;
public void startGame() {
this.world = new World(canvas.getWidth(), canvas.getHeight());
diff --git a/src/main/resources/lab/GameView.fxml b/src/main/resources/lab/GameView.fxml
new file mode 100644
index 0000000..8b34857
--- /dev/null
+++ b/src/main/resources/lab/GameView.fxml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.canvas.Canvas?>
+<?import javafx.scene.control.Button?>
+<?import javafx.scene.control.Slider?>
+<?import javafx.scene.layout.BorderPane?>
+<?import javafx.scene.layout.HBox?>
+
+
+<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" xmlns="http://javafx.com/javafx/18" xmlns:fx="http://javafx.com/fxml/1" fx:controller="lab.GameController">
+ <center>
+ <Canvas fx:id="canvas" height="400.0" width="600.0" BorderPane.alignment="CENTER" />
+ </center>
+ <bottom>
+ <HBox BorderPane.alignment="CENTER">
+ <children>
+ <Slider fx:id="angleSlider" max="90.0" showTickLabels="true" showTickMarks="true" HBox.hgrow="ALWAYS">
+ <padding>
+ <Insets bottom="11.0" left="13.0" right="13.0" top="11.0" />
+ </padding>
+ </Slider>
+ <Button fx:id="fireButton" mnemonicParsing="false" text="Fire" HBox.hgrow="ALWAYS">
+ <padding>
+ <Insets bottom="11.0" left="13.0" right="13.0" top="11.0" />
+ </padding>
+ </Button>
+ <Slider fx:id="forceSlider" max="200.0" min="10.0" showTickLabels="true" showTickMarks="true" HBox.hgrow="ALWAYS">
+ <HBox.margin>
+ <Insets bottom="11.0" left="13.0" right="13.0" top="11.0" />
+ </HBox.margin>
+ </Slider>
+ </children>
+ </HBox>
+ </bottom>
+</BorderPane>
--
GitLab