From abfa3ea8637ee1864cdd5b455dab84e1581b66d7 Mon Sep 17 00:00:00 2001 From: fjc40 Date: Wed, 27 Sep 2017 15:51:00 +1300 Subject: [PATCH 1/3] Race now uses a 1 for timescale, which effectively disables time/speed scaling. --- racevisionGame/src/main/java/shared/model/Constants.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/racevisionGame/src/main/java/shared/model/Constants.java b/racevisionGame/src/main/java/shared/model/Constants.java index 6d1c35a8..e62a2e04 100644 --- a/racevisionGame/src/main/java/shared/model/Constants.java +++ b/racevisionGame/src/main/java/shared/model/Constants.java @@ -28,7 +28,7 @@ public class Constants { * Frame periods are multiplied by this to get the amount of time a single frame represents. * E.g., frame period = 20ms, scale = 5, frame represents 20 * 5 = 100ms, and so boats are simulated for 100ms, even though only 20ms actually occurred. */ - public static final int RaceTimeScale = 2; + public static final int RaceTimeScale = 1; /** * The race pre-start time, in milliseconds. 30 seconds. From e77208aea156003a09f0d849e90c2e99a760be30 Mon Sep 17 00:00:00 2001 From: fjc40 Date: Wed, 27 Sep 2017 16:08:02 +1300 Subject: [PATCH 2/3] MarkRoundingSequence now stores data using the leg number, rather than the leg object itself. This was an issue as leg objects would be recreated when race xml files are received. Fixes issue #64 --- .../src/main/java/shared/model/MarkRoundingSequence.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/racevisionGame/src/main/java/shared/model/MarkRoundingSequence.java b/racevisionGame/src/main/java/shared/model/MarkRoundingSequence.java index de11c170..2b8fd823 100644 --- a/racevisionGame/src/main/java/shared/model/MarkRoundingSequence.java +++ b/racevisionGame/src/main/java/shared/model/MarkRoundingSequence.java @@ -17,8 +17,9 @@ public class MarkRoundingSequence { /** * For each leg, mark rounding information. + * Maps between leg number and rounding data. */ - private Map roundingPoints; + private Map roundingPoints; @@ -34,7 +35,7 @@ public class MarkRoundingSequence { * @return Rounding points for leg. */ public MarkRoundingData getRoundingData(Leg leg) { - return roundingPoints.get(leg); + return roundingPoints.get(leg.getLegNumber()); } @@ -139,7 +140,7 @@ public class MarkRoundingSequence { roundingData.setRoundCheck2Halfway(roundCheck2Halfway); - this.roundingPoints.put(currentLeg, roundingData); + this.roundingPoints.put(currentLeg.getLegNumber(), roundingData); //Rounding points: From 5d9b574378ad9819fb0433c2a24befb3130b953a Mon Sep 17 00:00:00 2001 From: fjc40 Date: Wed, 27 Sep 2017 23:40:00 +1300 Subject: [PATCH 3/3] Zooming in while in birds eye no longer clips through sea surface. Zooming with mouse wheel is the same speed as zooming with keyboard. --- .../java/visualiser/Controllers/RaceViewController.java | 7 ++++++- racevisionGame/src/main/java/visualiser/layout/View3D.java | 6 ++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java b/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java index 72c564f2..66ac58d1 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java @@ -576,7 +576,12 @@ public class RaceViewController extends Controller { // Bind zooming to scrolling view3D.setOnScroll(e -> { - view3D.updateDistance(e.getDeltaY()); + //view3D.updateDistance(e.getDeltaY()); + if (e.getDeltaY() > 0) { + view3D.zoomIn(); + } else { + view3D.zoomOut(); + } }); // Bind zooming to keypress (Z/X default) diff --git a/racevisionGame/src/main/java/visualiser/layout/View3D.java b/racevisionGame/src/main/java/visualiser/layout/View3D.java index 8501cdaa..dfaa0c0f 100644 --- a/racevisionGame/src/main/java/visualiser/layout/View3D.java +++ b/racevisionGame/src/main/java/visualiser/layout/View3D.java @@ -268,8 +268,10 @@ public class View3D extends Pane { public void updateDistance(double delta) { double newDistance = -this.distance.getZ() + delta; if (target.get() == null){ - if (newDistance > MAX_ZOOM_LIMIT){ + if (newDistance > MAX_ZOOM_LIMIT) { setDistance(MAX_ZOOM_LIMIT); + } else if (newDistance <= ZOOM_IN_LIMIT) { + setDistance(ZOOM_IN_LIMIT); } else { setDistance(newDistance); } @@ -372,4 +374,4 @@ public class View3D extends Pane { public void addPointLight(PointLight pointLight) { this.world.getChildren().add(pointLight); } -} \ No newline at end of file +}