From 98240532f03aa4ba684a3343e8d4babf8eb4636e Mon Sep 17 00:00:00 2001 From: Fan-Wu Yang Date: Thu, 28 Sep 2017 07:31:47 +1300 Subject: [PATCH] Sharks are now seeable --- .../Controllers/RaceViewController.java | 20 ++++-- .../main/java/visualiser/layout/Assets3D.java | 6 ++ .../src/main/resources/assets/V1.0 Sharks.x3d | 62 ++++++++++++++++++ .../resources/assets/textures/Shark Material | Bin 0 -> 20565 bytes 4 files changed, 83 insertions(+), 5 deletions(-) create mode 100644 racevisionGame/src/main/resources/assets/V1.0 Sharks.x3d create mode 100644 racevisionGame/src/main/resources/assets/textures/Shark Material diff --git a/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java b/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java index b92d4e80..6f101989 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java @@ -482,6 +482,10 @@ public class RaceViewController extends Controller { // } // boat.legProperty().addListener((o, prev, curr) -> Platform.runLater(() -> swapColours(curr))); + //next mark indicator + changeNextMark(boat.getCurrentLeg()); + viewSubjects.add(Assets3D.ccwNextArrow); + viewSubjects.add(Assets3D.cwNextArrow); boat.legProperty().addListener((o, prev, curr) -> Platform.runLater(() -> changeNextMark(curr))); } else { viewSubjects.add(boatModel); @@ -502,11 +506,6 @@ public class RaceViewController extends Controller { sailsSubject.setHeading(visualiserRace.getVisualiserRaceState().getWindDirection().degrees()); viewSubjects.add(sailsSubject); - //next mark indicator - changeNextMark(boat.getCurrentLeg()); - viewSubjects.add(Assets3D.ccwNextArrow); - viewSubjects.add(Assets3D.cwNextArrow); - // SeagullFlock seagullFlock = new SeagullFlock(67, 43, 0); //// seagullFlock.addToFlock(); @@ -1045,6 +1044,17 @@ public class RaceViewController extends Controller { if(boat.getHealth()<=0){ //Boat is dead. Don't check it anymore for hp fp.displayDeath(fp.getSourceID()==raceState.getPlayerBoatID()); + Annotation3D sharks = new Annotation3D(Assets3D.getSharks()); + sharks.setX(gpsConverter.convertGPS(boat.getPosition()).getX()); + sharks.setZ(gpsConverter.convertGPS(boat.getPosition()).getY()); + viewSubjects.add(sharks); + new AnimationTimer(){ + @Override + public void handle(long now) { + sharks.setHeading(sharks.getHeading().getAngle() - 3); + } + }.start(); + fp.setSourceID(0); try { raceState.getBoat(boat.getSourceID()).setStatus(BoatStatusEnum.DNF); diff --git a/racevisionGame/src/main/java/visualiser/layout/Assets3D.java b/racevisionGame/src/main/java/visualiser/layout/Assets3D.java index 266d8e12..a3c0fd03 100644 --- a/racevisionGame/src/main/java/visualiser/layout/Assets3D.java +++ b/racevisionGame/src/main/java/visualiser/layout/Assets3D.java @@ -28,6 +28,7 @@ public class Assets3D { public static Subject3D ccwNextArrow; public static SkyBox skyBox; public static Subject3D boatHighlight; + public static Subject3D sharks; public static void loadAssets(){ loadSails(); @@ -144,6 +145,11 @@ public class Assets3D { windArrow = new Annotation3D(loadX3d(arrowPath)); } + public static Shape3D getSharks(){ + String path = "assets/V1.0 Sharks.x3d"; + return loadX3d(path); + } + public static Shape3D loadX3d(String path){ X3dModelImporter x3dModelImporter = new X3dModelImporter(); URL asset = Assets3D.class.getClassLoader().getResource(path); diff --git a/racevisionGame/src/main/resources/assets/V1.0 Sharks.x3d b/racevisionGame/src/main/resources/assets/V1.0 Sharks.x3d new file mode 100644 index 00000000..4bb8b511 --- /dev/null +++ b/racevisionGame/src/main/resources/assets/V1.0 Sharks.x3d @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/racevisionGame/src/main/resources/assets/textures/Shark Material b/racevisionGame/src/main/resources/assets/textures/Shark Material new file mode 100644 index 0000000000000000000000000000000000000000..ac970844be09f0ac2f20b0d5519b5f3f4c00a26f GIT binary patch literal 20565 zcmeI4&r2Io5XWaXugNAxTooh~#I3YYu!7=6P{=9?Nj!ugrC?7f^dO}ap&*_#Du|*U z6i*?72hWAJhhF1R@DC8YNH4vV>amA{eJ}nozY(sjmfc>DNwqmW&+z z8k@gzPD;@qf5L&>+mY|-TtysLd43RH55@;C)BDBIR+IkhJdu)d*V@tdyp*^vHuLru zBxTVycuFN@c{ls~<^(rqib~oxDA$cv!sGs~+bg-=F;eNX4X)!v!h`pn@w-blgNjq{ zune-SZ9(bVddt1(9qMu(Yu>CmBGfkj?4DqEZ*L$etQyz_^8cBq(?F!*P)Y6NCrp-NCqK^O7grK5L+aJ>W6n9Z)*XX z$$3)dAT$UKLN^LuKxhyegjN)*X^%kG4TJ`vZG;A!o7J#jGuR9^gUzNcpDKIP#enjR z@(ebkJe$rUiq%?_XRsM;HpMD;EqC;I(BnbD2H4!_=>?m?X0Z8Tu{ri;_)MhZ!mJC> zbj##D$b0D6g}es=9C?oho6v2<`Yzf(vOoz7l(0Yv-9`-|6Y&c13h@f@>hX$Kwe7X~ dthaUlP2}oRV*2o>|3t47D1~e>^JTKU@*e;k;THe^ literal 0 HcmV?d00001