diff --git a/mock/src/main/java/seng302/App.java b/mock/src/main/java/seng302/App.java index ab4b29c1..3863bea6 100644 --- a/mock/src/main/java/seng302/App.java +++ b/mock/src/main/java/seng302/App.java @@ -1,6 +1,8 @@ package seng302; +import javafx.application.Application; +import javafx.stage.Stage; import org.xml.sax.SAXException; import seng302.Model.ConstantVelocityRace; import seng302.Model.Race; @@ -8,7 +10,7 @@ import seng302.Model.Race; import javax.xml.parsers.ParserConfigurationException; import java.io.IOException; -public class App{ +public class App extends Application { /** * Entry point for running the programme @@ -16,6 +18,11 @@ public class App{ * @param args for starting the programme */ public static void main(String[] args) { + launch(args); + } + + @Override + public void start(Stage primaryStage) { try { RaceDataSource raceData = new RaceXMLReader("raceXML/bermuda_AC35.xml"); ConstantVelocityRace newRace = new ConstantVelocityRace(raceData, 15); @@ -28,7 +35,6 @@ public class App{ } catch (ParserConfigurationException e) { e.printStackTrace(); } - } } diff --git a/mock/src/main/java/seng302/Model/BoatInRace.java b/mock/src/main/java/seng302/Model/BoatInRace.java index 644cba4f..8ab5351b 100644 --- a/mock/src/main/java/seng302/Model/BoatInRace.java +++ b/mock/src/main/java/seng302/Model/BoatInRace.java @@ -269,22 +269,6 @@ public class BoatInRace extends Boat { this.position.set(position); } - /** - * Adds a new point to boat's track. - * @param coordinate of point on track - * @return whether add is successful - * @see seng302.Model.TrackPoint - */ - public boolean addTrackPoint(GPSCoordinate coordinate) { - Boolean added = System.currentTimeMillis() >= nextValidTime; - long currentTime = System.currentTimeMillis(); - if (added && this.started) { - nextValidTime = currentTime + (long) trackPointTimeInterval; - track.add(new TrackPoint(coordinate, currentTime, TRACK_POINT_LIMIT * (long) trackPointTimeInterval)); - } - return added; - } - /** * Returns the boat's sampled track between start of race and current time. * @return queue of track points diff --git a/mock/src/main/java/seng302/Model/Race.java b/mock/src/main/java/seng302/Model/Race.java index 5b7c8bab..22a7d152 100644 --- a/mock/src/main/java/seng302/Model/Race.java +++ b/mock/src/main/java/seng302/Model/Race.java @@ -25,6 +25,7 @@ public abstract class Race implements Runnable { protected int boatsFinished = 0; protected long totalTimeElapsed; private int lastFPS = 20; + private int dnfChance = 0; //percentage chance a boat fails at each checkpoint protected int scaleFactor; @@ -67,7 +68,7 @@ public abstract class Race implements Runnable { /** * Checks the position of the boat, this updates the boats current position. * - * @param boat Boat that the postion is to be updated for. + * @param boat Boat that the position is to be updated for. * @param timeElapsed Time that has elapse since the start of the the race. * @see BoatInRace */ @@ -86,16 +87,14 @@ public abstract class Race implements Runnable { */ public void run() { initialiseBoats(); - System.out.println("Running race"); - simulateRace(); + countdownTimer(); } /** * Countdown timer until race starts. Use PRERACE_TIME to set countdown duration. */ protected void countdownTimer() { - System.out.println("Running countdown timer"); - new AnimationTimer() { + AnimationTimer timer = new AnimationTimer() { long currentTime = System.currentTimeMillis(); long startTime = currentTime + (PRERACE_TIME/scaleFactor); long minutes; @@ -106,9 +105,7 @@ public abstract class Race implements Runnable { @Override public void handle(long arg0) { - System.out.println("Starting timer"); timeLeft = startTime - currentTime; - System.out.println(timeLeft); if (timeLeft <= 0) { stop(); simulateRace(); @@ -121,8 +118,8 @@ public abstract class Race implements Runnable { } currentTime = System.currentTimeMillis(); } - }.start(); - System.out.println("Running countdown timer"); + }; + timer.start(); } /** @@ -159,30 +156,19 @@ public abstract class Race implements Runnable { new AnimationTimer() { long timeRaceStarted = System.currentTimeMillis(); //start time of loop - int fps = 0; //init fps value - long timeCurrent = System.currentTimeMillis(); //current time @Override public void handle(long arg0) { - System.out.println(); - if (boatsFinished < startingBoats.size()) { totalTimeElapsed = System.currentTimeMillis() - timeRaceStarted; for (BoatInRace boat : startingBoats) { if (boat != null && !boat.isFinished()) { - boat.addTrackPoint(boat.getCurrentPosition()); updatePosition(boat, Math.round(1000 / lastFPS) > 20 ? 15 : Math.round(1000 / lastFPS)); checkPosition(boat, totalTimeElapsed); } } } - fps++; - if ((System.currentTimeMillis() - timeCurrent) > 1000) { - lastFPS = fps; - fps = 0; - timeCurrent = System.currentTimeMillis(); - } } @@ -197,6 +183,7 @@ public abstract class Race implements Runnable { for(BoatInRace boat: startingBoats) { if(boat != null) { boat.setPosition(Integer.toString(startingBoats.indexOf(boat) + 1)); + System.out.println(boat.getName() + boat.getPosition()); if (boat.getCurrentLeg().getName().equals("DNF") || boat.getCurrentLeg().getLegNumber() == 0) boat.setPosition("-"); }