From 45eb5572562af1b9e1b691cf0101990e843e4400 Mon Sep 17 00:00:00 2001 From: David Wu Date: Sun, 24 Sep 2017 18:58:19 +1300 Subject: [PATCH] Displaying visual effect with imageview. #story[1292] --- .../Controllers/RaceViewController.java | 22 +++++++++++++++++-- .../visualiser/scenes/newRaceView.fxml | 10 ++++++++- .../resources/visualiser/scenes/raceView.fxml | 16 +++++++++----- 3 files changed, 40 insertions(+), 8 deletions(-) diff --git a/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java b/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java index 1404875e..d4898ebf 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java @@ -13,6 +13,7 @@ import javafx.scene.PointLight; import javafx.scene.chart.LineChart; import javafx.scene.control.*; import javafx.scene.image.Image; +import javafx.scene.image.ImageView; import javafx.scene.input.KeyCode; import javafx.scene.input.KeyEvent; import javafx.scene.layout.AnchorPane; @@ -69,6 +70,7 @@ public class RaceViewController extends Controller { private boolean mapToggle = true; private int heartbeatDelay = 1000; private long heartbeatTime = 0; + private GPSConverter gpsConverter; /** @@ -100,6 +102,7 @@ public class RaceViewController extends Controller { private @FXML AnchorPane infoWrapper; private @FXML AnchorPane lineChartWrapper; private @FXML GridPane playerHealthContainer; + private @FXML ImageView imageView; /** * Displays a specified race. @@ -114,7 +117,6 @@ public class RaceViewController extends Controller { this.controllerClient = controllerClient; this.isHost = isHost; keyFactory.load(); - tutorialCheck(); initKeypressHandler(); initialiseRaceVisuals(); @@ -235,12 +237,19 @@ public class RaceViewController extends Controller { initialiseView3D(this.visualiserRace); initialiseHealthPane(); initialiseRaceClock(); + initialiseFireEffect(); raceTimer(); // start the timer new Sparkline(this.raceState, this.sparklineChart); timeZone.setText(this.raceState.getRaceClock().getTimeZone()); arrowController.setWindProperty(this.raceState.windProperty()); } + private void initialiseFireEffect(){ + Image fire = new Image(getClass().getClassLoader().getResourceAsStream("images/fire.gif")); + imageView.setImage(fire); + //imageView.setVisible(false); + } + private void initialiseHealthPane() { InputStream tomato = this.getClass().getClassLoader().getResourceAsStream("visualiser/images/tomato.png"); HealthSlider healthSlider = new HealthSlider(new Image(tomato)); @@ -294,7 +303,7 @@ public class RaceViewController extends Controller { // Set up projection from GPS to view RaceDataSource raceData = visualiserRace.getVisualiserRaceState().getRaceDataSource(); - final GPSConverter gpsConverter = new GPSConverter(raceData, 450, 450); + gpsConverter = new GPSConverter(raceData, 450, 450); SkyBox skyBox = new SkyBox(750, 200, 250, 0, 210); viewSubjects.addAll(skyBox.getSkyBoxPlanes()); @@ -675,6 +684,15 @@ public class RaceViewController extends Controller { heartbeatDelay = 1000; } if(raceState.getBoat(raceState.getPlayerBoatID()).getHealth()<=40){ + imageView.setVisible(true); + + imageView.setX(gpsConverter.convertGPS(raceState.getBoat(raceState.getPlayerBoatID()).getPosition()).getX()); + imageView.setY(gpsConverter.convertGPS(raceState.getBoat(raceState.getPlayerBoatID()).getPosition()).getY()); + System.out.println("Boat:" + gpsConverter.convertGPS(raceState.getBoat(raceState.getPlayerBoatID()).getPosition()).getX()); + System.out.println("Image:" + imageView.getX()); + + + //imageView.translateXProperty().setValue(raceState.getBoat(raceState.getPlayerBoatID()).getPosition().getLongitude()); if(System.currentTimeMillis() > heartbeatTime+heartbeatDelay) { AudioClip sound = new AudioClip(this.getClass().getResource("/visualiser/sounds/heartbeat.mp3").toExternalForm()); sound.play(); diff --git a/racevisionGame/src/main/resources/visualiser/scenes/newRaceView.fxml b/racevisionGame/src/main/resources/visualiser/scenes/newRaceView.fxml index 35987e4d..cdafe906 100644 --- a/racevisionGame/src/main/resources/visualiser/scenes/newRaceView.fxml +++ b/racevisionGame/src/main/resources/visualiser/scenes/newRaceView.fxml @@ -1,5 +1,12 @@ + + + + + + + @@ -23,7 +30,7 @@ - + @@ -179,6 +186,7 @@ + diff --git a/racevisionGame/src/main/resources/visualiser/scenes/raceView.fxml b/racevisionGame/src/main/resources/visualiser/scenes/raceView.fxml index c4180e76..fa7114b3 100644 --- a/racevisionGame/src/main/resources/visualiser/scenes/raceView.fxml +++ b/racevisionGame/src/main/resources/visualiser/scenes/raceView.fxml @@ -1,5 +1,6 @@ + @@ -28,11 +29,7 @@ - + @@ -113,6 +110,15 @@