mirror of
https://github.com/michaelrausch/Party-Parrots-At-Sea.git
synced 2026-05-09 06:18:44 +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,24 +151,28 @@ 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;
|
||||||
|
|
||||||
if (oldValue.doubleValue() != 0.0 && maxVertical < getScene().getHeight()) {
|
Scale scale = new Scale(scaleFactor, scaleFactor, 0, 0);
|
||||||
setScaleX(scaleFactor);
|
getTransforms().remove(0, getTransforms().size());
|
||||||
setScaleY(scaleFactor);
|
getTransforms().add(scale);
|
||||||
setTranslateX(0 - ((1 - scaleFactor) * oldValue.doubleValue() / 2));
|
|
||||||
setTranslateY(0 - ((1 - scaleFactor) * getScene().getHeight() / 2));
|
setPrefWidth(getWidth() / scaleFactor);
|
||||||
System.out.println("Width: " + newValue);
|
setPrefHeight(getHeight() / scaleFactor);
|
||||||
System.out.println("Scale X: " + getScaleX());
|
|
||||||
System.out.println("Transition X: " + getTranslateX());
|
System.out.println("Width: " + newValue);
|
||||||
System.out.println("Get Height: " + getScene().getHeight());
|
System.out.println("Scale X: " + getScaleX());
|
||||||
System.out.println("Get Width: " + getScene().getWidth());
|
System.out.println("Transition X: " + getTranslateX());
|
||||||
}
|
System.out.println("Get Height: " + getScene().getHeight());
|
||||||
|
System.out.println("Get Width: " + getScene().getWidth());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -175,20 +180,22 @@ public class GameView extends Pane {
|
|||||||
@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;
|
||||||
|
|
||||||
if (oldValue.doubleValue() != 0.0 && maxHorizontal < getScene().getWidth()) {
|
Scale scale = new Scale(scaleFactor, scaleFactor, 0, 0);
|
||||||
setScaleX(scaleFactor);
|
getTransforms().remove(0, getTransforms().size());
|
||||||
setScaleY(scaleFactor);
|
getTransforms().add(scale);
|
||||||
setTranslateX(0 - ((1 - scaleFactor) * getScene().getWidth() / 2));
|
|
||||||
setTranslateY(0 - ((1 - scaleFactor) * oldValue.doubleValue() / 2));
|
setPrefWidth(getWidth() / scaleFactor);
|
||||||
System.out.println("Height: " + newValue);
|
setPrefHeight(getHeight() / scaleFactor);
|
||||||
System.out.println("Scale Y: " + getScaleY());
|
|
||||||
System.out.println("Transition Y: " + getTranslateY());
|
System.out.println("Height: " + newValue);
|
||||||
System.out.println("Get Height: " + getScene().getHeight());
|
System.out.println("Scale Y: " + getScaleY());
|
||||||
System.out.println("Get Width: " + getScene().getWidth());
|
System.out.println("Transition Y: " + getTranslateY());
|
||||||
}
|
System.out.println("Get Height: " + getScene().getHeight());
|
||||||
|
System.out.println("Get Width: " + getScene().getWidth());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -135,10 +135,10 @@ public class RaceViewController extends Thread implements ImportantAnnotationDel
|
|||||||
gameView = new GameView();
|
gameView = new GameView();
|
||||||
gameView.setFrameRateFXText(fpsDisplay);
|
gameView.setFrameRateFXText(fpsDisplay);
|
||||||
Platform.runLater(() -> contentAnchorPane.getChildren().add(0, gameView));
|
Platform.runLater(() -> contentAnchorPane.getChildren().add(0, gameView));
|
||||||
gameView.setBoats(new ArrayList<>(participants.values()));
|
gameView.setBoats(new ArrayList<>(participants.values()));
|
||||||
gameView.updateBorder(raceData.getCourseLimit());
|
gameView.updateBorder(raceData.getCourseLimit());
|
||||||
gameView.updateCourse(
|
gameView.updateCourse(
|
||||||
new ArrayList<>(raceData.getCompoundMarks().values()), raceData.getMarkSequence()
|
new ArrayList<>(raceData.getCompoundMarks().values()), raceData.getMarkSequence()
|
||||||
);
|
);
|
||||||
gameView.enableZoom();
|
gameView.enableZoom();
|
||||||
gameView.setBoatAsPlayer(player);
|
gameView.setBoatAsPlayer(player);
|
||||||
|
|||||||
Reference in New Issue
Block a user