From d62b7ead17887faae004a4fa35a807acc7441964 Mon Sep 17 00:00:00 2001 From: Peter <pt033@hdm-stuttgart.de> Date: Thu, 25 Jan 2024 16:17:57 +0100 Subject: [PATCH] update(Game Scene): fix responsive layout for canvas #14 --- .../Controller/GameSceneController.java | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java index 1306fe7c..c6b0ac3e 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java @@ -14,6 +14,8 @@ import de.hdm_stuttgart.battlearena.Model.Inputs.InputHandler; import de.hdm_stuttgart.battlearena.Model.Map.TileManager; import javafx.animation.AnimationTimer; +import javafx.beans.value.ChangeListener; +import javafx.beans.value.ObservableValue; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.geometry.Insets; @@ -119,22 +121,18 @@ public class GameSceneController implements Initializable { enemyHealth.setWidth(healthBarWidth); // make it responsive - if (ScreenClasses.inRange((int) diagonalInches) == ScreenClasses.INCH27) { - canvas2D.setScaleX(1.5); - canvas2D.setScaleY(1.5); - } else if (ScreenClasses.inRange((int) diagonalInches) == ScreenClasses.INCH13_SURFACE) { -// TODO: make a enum for MacBook screens - } else { - canvas2D.setScaleX(0.87); - canvas2D.setScaleY(0.87); - playerHealth.setHeight(50); - enemyHealth.setHeight(50); - BorderPane.setMargin(stackPane, new Insets(-40, 0, 0, 0)); - } + stackPane.heightProperty().addListener((observableValue, oldValue, newValue) -> { + canvas2D.setScaleY(newValue.doubleValue() / 870); + canvas2D.setScaleX(newValue.doubleValue() / 870); + }); + + System.out.println(stackPane.heightProperty()); System.out.println("dpi: " + screen.getDpi()); // testing hp bar slider.valueProperty().addListener((observableValue, oldValue, newValue) -> { + System.out.println(stackPane.widthProperty().doubleValue()); + System.out.println(stackPane.heightProperty().doubleValue()); double newWidth = healthBarWidth * (newValue.doubleValue() / 100); playerHealth.setWidth(newWidth); playerHp.setText(newValue.intValue() + "%"); -- GitLab