mirror of
https://github.com/michaelrausch/Party-Parrots-At-Sea.git
synced 2026-05-09 14:28:43 +00:00
[WIP]
- Horizontal and vertical resizing works fine now. - Issue: Have to implement maximum horizontal and vertical scaling. #story[1248]
This commit is contained in:
@@ -27,6 +27,7 @@ import javafx.scene.paint.Paint;
|
|||||||
import javafx.scene.shape.Circle;
|
import javafx.scene.shape.Circle;
|
||||||
import javafx.scene.shape.Polygon;
|
import javafx.scene.shape.Polygon;
|
||||||
import javafx.scene.text.Text;
|
import javafx.scene.text.Text;
|
||||||
|
import javafx.scene.transform.Scale;
|
||||||
import javafx.util.Duration;
|
import javafx.util.Duration;
|
||||||
import seng302.gameServer.messages.RoundingSide;
|
import seng302.gameServer.messages.RoundingSide;
|
||||||
import seng302.model.ClientYacht;
|
import seng302.model.ClientYacht;
|
||||||
@@ -150,46 +151,52 @@ public class GameView extends Pane {
|
|||||||
gameObjects.add(new Circle(1280, 0, 10, Color.RED));
|
gameObjects.add(new Circle(1280, 0, 10, Color.RED));
|
||||||
// --------
|
// --------
|
||||||
|
|
||||||
|
double RATIO = getWidth() / getHeight();
|
||||||
|
|
||||||
this.widthProperty().addListener(new ChangeListener<Number>() {
|
this.widthProperty().addListener(new ChangeListener<Number>() {
|
||||||
@Override
|
@Override
|
||||||
public void changed(ObservableValue<? extends Number> observable, Number oldValue,
|
public void changed(ObservableValue<? extends Number> observable, Number oldValue,
|
||||||
Number newValue) {
|
Number newValue) {
|
||||||
scaleFactor = (newValue.doubleValue() - 180) / canvasWidth;
|
scaleFactor = getWidth() / getHeight() > RATIO
|
||||||
double maxVertical = 960 * scaleFactor;
|
? getHeight() / canvasHeight
|
||||||
|
: getWidth() / canvasWidth;
|
||||||
|
|
||||||
|
Scale scale = new Scale(scaleFactor, scaleFactor, 0, 0);
|
||||||
|
getTransforms().remove(0, getTransforms().size());
|
||||||
|
getTransforms().add(scale);
|
||||||
|
|
||||||
|
setPrefWidth(getWidth() / scaleFactor);
|
||||||
|
setPrefHeight(getHeight() / scaleFactor);
|
||||||
|
|
||||||
if (oldValue.doubleValue() != 0.0 && maxVertical < getScene().getHeight()) {
|
|
||||||
setScaleX(scaleFactor);
|
|
||||||
setScaleY(scaleFactor);
|
|
||||||
setTranslateX(0 - ((1 - scaleFactor) * oldValue.doubleValue() / 2));
|
|
||||||
setTranslateY(0 - ((1 - scaleFactor) * getScene().getHeight() / 2));
|
|
||||||
System.out.println("Width: " + newValue);
|
System.out.println("Width: " + newValue);
|
||||||
System.out.println("Scale X: " + getScaleX());
|
System.out.println("Scale X: " + getScaleX());
|
||||||
System.out.println("Transition X: " + getTranslateX());
|
System.out.println("Transition X: " + getTranslateX());
|
||||||
System.out.println("Get Height: " + getScene().getHeight());
|
System.out.println("Get Height: " + getScene().getHeight());
|
||||||
System.out.println("Get Width: " + getScene().getWidth());
|
System.out.println("Get Width: " + getScene().getWidth());
|
||||||
}
|
}
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
this.heightProperty().addListener(new ChangeListener<Number>() {
|
this.heightProperty().addListener(new ChangeListener<Number>() {
|
||||||
@Override
|
@Override
|
||||||
public void changed(ObservableValue<? extends Number> observable, Number oldValue,
|
public void changed(ObservableValue<? extends Number> observable, Number oldValue,
|
||||||
Number newValue) {
|
Number newValue) {
|
||||||
scaleFactor = (newValue.doubleValue() - 40) / canvasHeight;
|
scaleFactor = getWidth() / getHeight() > RATIO
|
||||||
double maxHorizontal = 1530 * scaleFactor;
|
? getWidth() / canvasWidth
|
||||||
|
: getHeight() / canvasHeight;
|
||||||
|
|
||||||
|
Scale scale = new Scale(scaleFactor, scaleFactor, 0, 0);
|
||||||
|
getTransforms().remove(0, getTransforms().size());
|
||||||
|
getTransforms().add(scale);
|
||||||
|
|
||||||
|
setPrefWidth(getWidth() / scaleFactor);
|
||||||
|
setPrefHeight(getHeight() / scaleFactor);
|
||||||
|
|
||||||
if (oldValue.doubleValue() != 0.0 && maxHorizontal < getScene().getWidth()) {
|
|
||||||
setScaleX(scaleFactor);
|
|
||||||
setScaleY(scaleFactor);
|
|
||||||
setTranslateX(0 - ((1 - scaleFactor) * getScene().getWidth() / 2));
|
|
||||||
setTranslateY(0 - ((1 - scaleFactor) * oldValue.doubleValue() / 2));
|
|
||||||
System.out.println("Height: " + newValue);
|
System.out.println("Height: " + newValue);
|
||||||
System.out.println("Scale Y: " + getScaleY());
|
System.out.println("Scale Y: " + getScaleY());
|
||||||
System.out.println("Transition Y: " + getTranslateY());
|
System.out.println("Transition Y: " + getTranslateY());
|
||||||
System.out.println("Get Height: " + getScene().getHeight());
|
System.out.println("Get Height: " + getScene().getHeight());
|
||||||
System.out.println("Get Width: " + getScene().getWidth());
|
System.out.println("Get Width: " + getScene().getWidth());
|
||||||
}
|
}
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user