From 7a13885064ba1339c649b391a3406626f48e90cc Mon Sep 17 00:00:00 2001 From: Erika Savell Date: Fri, 24 Mar 2017 18:50:19 +1300 Subject: [PATCH] Users can select between 1 minute, 5 minute, or non scaled races - Current implementation is a bit messy I think, with 3 different start race methods for the three options - Considering letting users choose from a dropdown, so that the chosen value can be easily found from a single method for starting the race #implement #story[16] --- .../seng302/Controllers/RaceController.java | 20 +++++++++++++--- .../seng302/Model/ConstantVelocityRace.java | 3 ++- src/main/resources/scenes/racepane.fxml | 23 +++++++++++++------ 3 files changed, 35 insertions(+), 11 deletions(-) diff --git a/src/main/java/seng302/Controllers/RaceController.java b/src/main/java/seng302/Controllers/RaceController.java index a4981583..fddea21e 100644 --- a/src/main/java/seng302/Controllers/RaceController.java +++ b/src/main/java/seng302/Controllers/RaceController.java @@ -22,6 +22,7 @@ import seng302.Model.ResizableRaceCanvas; import seng302.Model.*; import seng302.RaceMap; +import java.awt.event.ActionEvent; import java.awt.geom.Point2D; import java.net.URL; import java.util.ArrayList; @@ -86,10 +87,23 @@ public class RaceController extends Controller{ @FXML - public void startRace() { + public void startRace1Min() { + startRace(15); + } - BoatInRace[] boats = generateAC35Competitors(); + @FXML + public void startRace5Min() { + startRace(3); + } + @FXML + public void startRaceNoScaling() { + startRace(1); + } + + + private void startRace(int scaleFactor) { + BoatInRace[] boats = generateAC35Competitors(); raceMap = new ResizableRaceCanvas(); raceMap.widthProperty().bind(canvasBase.widthProperty()); raceMap.heightProperty().bind(canvasBase.heightProperty()); @@ -100,7 +114,7 @@ public class RaceController extends Controller{ startScreen.setVisible(false); ArrayList legs = generateBermudaCourseLegs(); - ConstantVelocityRace race = new ConstantVelocityRace(boats, legs, this); + ConstantVelocityRace race = new ConstantVelocityRace(boats, legs, this, scaleFactor); raceMap.setVisible(true); (new Thread(race)).start(); } diff --git a/src/main/java/seng302/Model/ConstantVelocityRace.java b/src/main/java/seng302/Model/ConstantVelocityRace.java index 900f81ed..731ca5e4 100644 --- a/src/main/java/seng302/Model/ConstantVelocityRace.java +++ b/src/main/java/seng302/Model/ConstantVelocityRace.java @@ -22,8 +22,9 @@ public class ConstantVelocityRace extends Race { * @see Leg */ - public ConstantVelocityRace(BoatInRace[] startingBoats, ArrayList marks, RaceController controller) { + public ConstantVelocityRace(BoatInRace[] startingBoats, ArrayList marks, RaceController controller, int scaleFactor) { super(startingBoats, marks, controller); + setScaleFactor(scaleFactor); } public ConstantVelocityRace(BoatInRace[] startingBoats, ArrayList marks) { diff --git a/src/main/resources/scenes/racepane.fxml b/src/main/resources/scenes/racepane.fxml index b233563d..2e627ee5 100644 --- a/src/main/resources/scenes/racepane.fxml +++ b/src/main/resources/scenes/racepane.fxml @@ -15,17 +15,26 @@