From 234748d056478fe004bf1ddb022c9f0f4456d305 Mon Sep 17 00:00:00 2001 From: fjc40 Date: Thu, 25 May 2017 14:41:51 +1200 Subject: [PATCH 1/2] Visualiser: Fixed the issue where a boat's time since last mark started counting from when the race screen loaded. It now starts counting when the race actually starts. --- .../main/java/seng302/Mock/StreamedRace.java | 29 ++++++++++++------- .../seng302/Model/ResizableRaceCanvas.java | 6 ++++ 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/visualiser/src/main/java/seng302/Mock/StreamedRace.java b/visualiser/src/main/java/seng302/Mock/StreamedRace.java index 71b9c68a..7cd29c6e 100644 --- a/visualiser/src/main/java/seng302/Mock/StreamedRace.java +++ b/visualiser/src/main/java/seng302/Mock/StreamedRace.java @@ -185,9 +185,7 @@ public class StreamedRace implements Runnable { System.setProperty("javafx.animation.fullspeed", "true"); - for (Boat boat : startingBoats) { - boat.setStarted(true); - } + new AnimationTimer() { @@ -199,18 +197,27 @@ public class StreamedRace implements Runnable { public void handle(long arg0) { totalTimeElapsed = System.currentTimeMillis() - timeRaceStarted; + + //Check if the race has actually started. + if (visualiserInput.getRaceStatus().isStarted()) { + //Set all boats to started. for (Boat boat : startingBoats) { - if (boat != null && !boat.isFinished()) { - updatePosition(boat); - checkPosition(boat, totalTimeElapsed); - } + boat.setStarted(true); + } + } + for (Boat boat : startingBoats) { + if (boat != null && !boat.isFinished()) { + updatePosition(boat); + checkPosition(boat, totalTimeElapsed); } - for (Marker mark: boatMarkers){ - if (mark != null){ - updateMarker(mark); - } + + } + for (Marker mark: boatMarkers){ + if (mark != null){ + updateMarker(mark); } + } if (visualiserInput.getRaceStatus().isFinished()) { controller.finishRace(startingBoats); diff --git a/visualiser/src/main/java/seng302/Model/ResizableRaceCanvas.java b/visualiser/src/main/java/seng302/Model/ResizableRaceCanvas.java index 9dfab1a9..2f971b0f 100644 --- a/visualiser/src/main/java/seng302/Model/ResizableRaceCanvas.java +++ b/visualiser/src/main/java/seng302/Model/ResizableRaceCanvas.java @@ -328,6 +328,12 @@ public class ResizableRaceCanvas extends ResizableCanvas { if (Duration.between(boat.getTimeSinceLastMark(), raceClock.getTime()).getSeconds() < 0) { boat.setTimeSinceLastMark(raceClock.getTime()); } + + //If the race hasn't started, we set the time since last mark to the current time, to ensure we don't start counting until the race actually starts. + if (boat.isStarted() == false) { + boat.setTimeSinceLastMark(raceClock.getTime()); + } + displayText(boat.toString(), boat.getAbbrev(), boat.getVelocity(), this.map.convertGPS(boat.getCurrentPosition()), boat.getFormattedEstTime(), boat.getTimeSinceLastMark()); //TODO this needs to be fixed. drawTrack(boat, boatColours.get(sourceID)); From a095f15eac5526c8c713fb9f8299394dff24fe38 Mon Sep 17 00:00:00 2001 From: fjc40 Date: Thu, 25 May 2017 16:46:24 +1200 Subject: [PATCH 2/2] Fixed finish controller not being stretch and centered. --- mock/src/main/java/seng302/Model/Race.java | 2 +- .../src/main/java/seng302/Controllers/MainController.java | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/mock/src/main/java/seng302/Model/Race.java b/mock/src/main/java/seng302/Model/Race.java index c81974db..45bf2868 100644 --- a/mock/src/main/java/seng302/Model/Race.java +++ b/mock/src/main/java/seng302/Model/Race.java @@ -69,7 +69,7 @@ public class Race implements Runnable { * 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. */ - private int scaleFactor = 15; + private int scaleFactor = 5; /** * The race ID of the course. diff --git a/visualiser/src/main/java/seng302/Controllers/MainController.java b/visualiser/src/main/java/seng302/Controllers/MainController.java index 2b908e45..9937ae2c 100644 --- a/visualiser/src/main/java/seng302/Controllers/MainController.java +++ b/visualiser/src/main/java/seng302/Controllers/MainController.java @@ -51,5 +51,10 @@ public class MainController extends Controller { AnchorPane.setBottomAnchor(connectionController.startWrapper(), 0.0); AnchorPane.setLeftAnchor(connectionController.startWrapper(), 0.0); AnchorPane.setRightAnchor(connectionController.startWrapper(), 0.0); + + AnchorPane.setTopAnchor(finishController.finishWrapper, 0.0); + AnchorPane.setBottomAnchor(finishController.finishWrapper, 0.0); + AnchorPane.setLeftAnchor(finishController.finishWrapper, 0.0); + AnchorPane.setRightAnchor(finishController.finishWrapper, 0.0); } }