diff --git a/racevisionGame/src/main/java/visualiser/Controllers/InGameLobbyController.java b/racevisionGame/src/main/java/visualiser/Controllers/InGameLobbyController.java index 4e326e42..8cb2bb39 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/InGameLobbyController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/InGameLobbyController.java @@ -20,12 +20,14 @@ import javafx.scene.image.ImageView; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.GridPane; import javafx.scene.paint.Color; +import javafx.scene.paint.Material; import javafx.scene.paint.PhongMaterial; import javafx.scene.shape.MeshView; import javafx.scene.shape.Shape3D; import mock.app.Event; import network.Messages.Enums.RaceStatusEnum; import network.Messages.Enums.RequestToJoinEnum; +import org.apache.commons.codec.language.bm.Rule; import shared.model.Boat; import visualiser.app.App; import visualiser.gameController.ControllerClient; @@ -154,6 +156,18 @@ public class InGameLobbyController extends Controller { animatedPane.add(view3D, 0, 0); + //add sail + Material whiteSail = new PhongMaterial(Color.WHITE); + Sails3D sails3D = new Sails3D(); + Subject3D sailsSubject = new Subject3D(sails3D, 0); + sails3D.setMouseTransparent(true); + sails3D.setMaterial(whiteSail); + sailsSubject.setXRot(0d); + sailsSubject.setX(0); + sailsSubject.setZ(radius); + sailsSubject.setScale(0.1); + subjects.add(sailsSubject); + AnimationTimer loop = new AnimationTimer() { double angle = -90; double offset = 0.05; @@ -162,6 +176,9 @@ public class InGameLobbyController extends Controller { boat.setX(radius * Math.cos(angle * Math.PI/180)); boat.setZ(radius * Math.sin(angle * Math.PI/180)); boat.setHeading(-angle); + sailsSubject.setX(boat.getX()); + sailsSubject.setZ(boat.getZ()); + sailsSubject.setHeading(boat.getHeading().getAngle()); angle += offset; } }; diff --git a/racevisionGame/src/main/java/visualiser/Controllers/TitleController.java b/racevisionGame/src/main/java/visualiser/Controllers/TitleController.java index ec27d068..fd2ef10a 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/TitleController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/TitleController.java @@ -20,14 +20,14 @@ import javafx.scene.media.AudioClip; import javafx.scene.media.Media; import javafx.scene.media.MediaPlayer; import javafx.scene.paint.Color; +import javafx.scene.paint.Material; +import javafx.scene.paint.PhongMaterial; import javafx.scene.shape.MeshView; +import javafx.scene.shape.Shape3D; import javafx.stage.Modality; import mock.exceptions.EventConstructionException; import visualiser.app.App; -import visualiser.layout.SeaSurface; -import visualiser.layout.SkyBox; -import visualiser.layout.Subject3D; -import visualiser.layout.View3D; +import visualiser.layout.*; import java.io.File; import java.io.IOException; @@ -82,10 +82,13 @@ public class TitleController extends Controller { seaSurface.setZ(250); subjects.add(seaSurface); - URL asset = RaceViewController.class.getClassLoader().getResource("assets/V1.2 Complete Boat.stl"); - StlMeshImporter importer = new StlMeshImporter(); - importer.read(asset); - Subject3D boat = new Subject3D(new MeshView(importer.getImport()), 0); +// URL asset = RaceViewController.class.getClassLoader().getResource("assets/V1.2 Complete Boat.stl"); +// StlMeshImporter importer = new StlMeshImporter(); +// importer.read(asset); +// Subject3D boat = new Subject3D(new MeshView(importer.getImport()), 0); + + Shape3D mesh = Assets3D.getBoat(); + Subject3D boat = new Subject3D(mesh, 0); double radius = 100; boat.setX(0); @@ -95,6 +98,18 @@ public class TitleController extends Controller { subjects.add(boat); view3D.trackSubject(boat, -45); + //add sail + Material whiteSail = new PhongMaterial(Color.WHITE); + Sails3D sails3D = new Sails3D(); + Subject3D sailsSubject = new Subject3D(sails3D, 0); + sails3D.setMouseTransparent(true); + sails3D.setMaterial(whiteSail); + sailsSubject.setXRot(0d); + sailsSubject.setX(0); + sailsSubject.setZ(radius); + sailsSubject.setScale(0.1); + subjects.add(sailsSubject); + view3DContainer.add(view3D, 0, 0); AnimationTimer loop = new AnimationTimer() { @@ -105,6 +120,9 @@ public class TitleController extends Controller { boat.setX(radius * Math.cos(angle * Math.PI/180)); boat.setZ(radius * Math.sin(angle * Math.PI/180)); boat.setHeading(-angle); + sailsSubject.setX(boat.getX()); + sailsSubject.setZ(boat.getZ()); + sailsSubject.setHeading(boat.getHeading().getAngle()); angle += offset; } }; diff --git a/racevisionGame/src/main/resources/css/dayMode.css b/racevisionGame/src/main/resources/css/dayMode.css index ec68f091..2509ea56 100644 --- a/racevisionGame/src/main/resources/css/dayMode.css +++ b/racevisionGame/src/main/resources/css/dayMode.css @@ -222,3 +222,7 @@ -fx-border-width: 3; } +#gameTitle .text{ + -fx-stroke: black; + -fx-stroke-width:1px; +} \ No newline at end of file diff --git a/racevisionGame/src/main/resources/css/nightMode.css b/racevisionGame/src/main/resources/css/nightMode.css index 098c2931..b1c700ff 100644 --- a/racevisionGame/src/main/resources/css/nightMode.css +++ b/racevisionGame/src/main/resources/css/nightMode.css @@ -335,3 +335,8 @@ -fx-focus-color: transparent; -fx-background-color: transparent; } + +#gameTitle .text{ + -fx-stroke: black; + -fx-stroke-width:1px; +} \ No newline at end of file diff --git a/racevisionGame/src/main/resources/visualiser/scenes/title.fxml b/racevisionGame/src/main/resources/visualiser/scenes/title.fxml index 0f452560..7831a97d 100644 --- a/racevisionGame/src/main/resources/visualiser/scenes/title.fxml +++ b/racevisionGame/src/main/resources/visualiser/scenes/title.fxml @@ -54,7 +54,7 @@