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. 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: 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 +}