mirror of
https://github.com/michaelrausch/Party-Parrots-At-Sea.git
synced 2026-05-09 06:18:44 +00:00
- An attempt at chase cam smoothing. needs work.
tags : #story[1273]
This commit is contained in:
@@ -17,16 +17,27 @@ public class ChaseCamera extends PerspectiveCamera implements RaceCamera {
|
||||
private ObservableList<Transform> transforms;
|
||||
private BoatObject playerBoat;
|
||||
private ClientYacht playerYacht;
|
||||
private Double zoomFactor;
|
||||
|
||||
|
||||
public ChaseCamera() {
|
||||
super(true);
|
||||
transforms = this.getTransforms();
|
||||
this.zoomFactor = -75.0;
|
||||
}
|
||||
|
||||
public void setPlayerBoat(BoatObject playerBoat, ClientYacht playerYacht) {
|
||||
this.playerBoat = playerBoat;
|
||||
this.playerYacht = playerYacht;
|
||||
|
||||
this.playerYacht.getHeadingProperty().addListener(new ChangeListener<Number>() {
|
||||
@Override
|
||||
public void changed(ObservableValue<? extends Number> observable, Number oldValue,
|
||||
Number newValue) {
|
||||
repositionCamera();
|
||||
}
|
||||
});
|
||||
|
||||
this.playerBoat.layoutXProperty().addListener(new ChangeListener<Number>() {
|
||||
@Override
|
||||
public void changed(ObservableValue<? extends Number> observable, Number oldValue,
|
||||
@@ -49,18 +60,32 @@ public class ChaseCamera extends PerspectiveCamera implements RaceCamera {
|
||||
new Translate(playerBoat.getLayoutX(), playerBoat.getLayoutY(), 0),
|
||||
new Rotate(playerYacht.getHeading(), new Point3D(0, 0, 1)),
|
||||
new Rotate(60, new Point3D(1, 0, 0)),
|
||||
new Translate(0, 0, -75)
|
||||
new Translate(0, 0, zoomFactor)
|
||||
);
|
||||
}
|
||||
|
||||
private void repositionCamera(Double newHeading) {
|
||||
transforms.clear();
|
||||
transforms.addAll(
|
||||
new Translate(playerBoat.getLayoutX(), playerBoat.getLayoutY(), 0),
|
||||
new Rotate(newHeading, new Point3D(0, 0, 1)),
|
||||
new Rotate(60, new Point3D(1, 0, 0)),
|
||||
new Translate(0, 0, zoomFactor)
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void zoomIn() {
|
||||
transforms.addAll(new Translate(0, 0, 1.5));
|
||||
//transforms.addAll(new Translate(0, 0, 1.5));
|
||||
this.zoomFactor += 5;
|
||||
repositionCamera();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void zoomOut() {
|
||||
transforms.addAll(new Translate(0, 0, -1.5));
|
||||
//transforms.addAll(new Translate(0, 0, -1.5));
|
||||
this.zoomFactor -= 5;
|
||||
repositionCamera();
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user