mirror of
https://github.com/michaelrausch/Party-Parrots-At-Sea.git
synced 2026-05-09 14:28:43 +00:00
- Indicator points towards the next mark. Seems to do some funny stuff when entering a compound mark(gate).
tags : #story[1276]
This commit is contained in:
@@ -509,9 +509,22 @@ public class GameView3D {
|
|||||||
|
|
||||||
for (ObservableValue o : Arrays
|
for (ObservableValue o : Arrays
|
||||||
.asList(playerBoat.layoutXProperty(), playerBoat.layoutXProperty())) {
|
.asList(playerBoat.layoutXProperty(), playerBoat.layoutXProperty())) {
|
||||||
o.addListener((obs, oldVal, newVal) -> playerBoat.updateMarkIndicator(
|
o.addListener((obs, oldVal, newVal) -> {
|
||||||
findScaledXY(course.get(playerYacht.getLegNumber()).getMidPoint())
|
|
||||||
));
|
List<Mark> marks = course.get(playerYacht.getLegNumber()).getMarks();
|
||||||
|
Point2D midPoint = new Point2D(0, 0);
|
||||||
|
if (marks.size() == 1) {
|
||||||
|
midPoint = findScaledXY(marks.get(0));
|
||||||
|
} else if (marks.size() == 2) {
|
||||||
|
midPoint = (findScaledXY(marks.get(0)))
|
||||||
|
.midpoint(findScaledXY(marks.get(1)));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (midPoint != null) {
|
||||||
|
playerBoat.updateMarkIndicator(midPoint);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
}
|
}
|
||||||
gameObjects.getChildren().addAll(wakes);
|
gameObjects.getChildren().addAll(wakes);
|
||||||
gameObjects.getChildren().addAll(boatObjectGroup);
|
gameObjects.getChildren().addAll(boatObjectGroup);
|
||||||
|
|||||||
@@ -10,9 +10,7 @@ import javafx.geometry.Point3D;
|
|||||||
import javafx.scene.Group;
|
import javafx.scene.Group;
|
||||||
import javafx.scene.paint.Color;
|
import javafx.scene.paint.Color;
|
||||||
import javafx.scene.transform.Rotate;
|
import javafx.scene.transform.Rotate;
|
||||||
import javafx.scene.transform.Scale;
|
|
||||||
import javafx.scene.transform.Transform;
|
import javafx.scene.transform.Transform;
|
||||||
import javafx.scene.transform.Translate;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BoatGroup is a javafx group that by default contains a graphical objects for representing a 2
|
* BoatGroup is a javafx group that by default contains a graphical objects for representing a 2
|
||||||
@@ -88,14 +86,13 @@ public class BoatObject extends Group {
|
|||||||
public void updateMarkIndicator(Point2D markPoint) {
|
public void updateMarkIndicator(Point2D markPoint) {
|
||||||
// calculate heading between boat and next mark
|
// calculate heading between boat and next mark
|
||||||
|
|
||||||
Double x = markPoint.getX();
|
System.out.println(markPoint);
|
||||||
Double y = markPoint.getY();
|
;
|
||||||
|
Point2D boatLoc = new Point2D(this.getLayoutX(), this.getLayoutY());
|
||||||
|
System.out.println(boatLoc);
|
||||||
|
|
||||||
Double deltaX = (boatAssets.getAssets().getLayoutX() - x);
|
Double angle = Math.toDegrees(
|
||||||
Double deltaY = (boatAssets.getAssets().getLayoutY() - y);
|
Math.atan2(boatLoc.getY() - markPoint.getY(), boatLoc.getX() - markPoint.getX())) - 90;
|
||||||
Double angle = Math.toDegrees(Math.atan2(deltaY, deltaX));
|
|
||||||
|
|
||||||
//Double angle = rotation.getAngle();
|
|
||||||
|
|
||||||
ObservableList<Transform> transforms = markIndicator.getTransforms();
|
ObservableList<Transform> transforms = markIndicator.getTransforms();
|
||||||
|
|
||||||
@@ -110,10 +107,10 @@ public class BoatObject extends Group {
|
|||||||
|
|
||||||
transforms.clear();
|
transforms.clear();
|
||||||
transforms.addAll(
|
transforms.addAll(
|
||||||
new Rotate(angle, boatAssets.getAssets().getLayoutX(),
|
new Rotate(angle, new Point3D(0, 0, 1))
|
||||||
boatAssets.getAssets().getLayoutY(), 0),
|
// new Rotate(angle, 0,0, 0)
|
||||||
new Translate(transX, transY, -1),
|
//new Translate(transX, transY, -1),
|
||||||
new Scale(scale, scale, scale)
|
//new Scale(scale, scale, scale)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user