diff --git a/racevisionGame/src/main/java/shared/model/Constants.java b/racevisionGame/src/main/java/shared/model/Constants.java index 5dce72e6..26c56d11 100644 --- a/racevisionGame/src/main/java/shared/model/Constants.java +++ b/racevisionGame/src/main/java/shared/model/Constants.java @@ -39,14 +39,14 @@ public class Constants { * The race pre-start time, in milliseconds. 3 minutes (30 seconds for development). */ // public static final long RacePreStartTime = 30 * 1000; - public static final long RacePreStartTime = 30 * 1000; + public static final long RacePreStartTime = 6 * 1000; /** * The race preparatory time, in milliseconds. 1 minute. */ // public static final long RacePreparatoryTime = 60 * 1000; - public static final long RacePreparatoryTime = 60 * 1000; + public static final long RacePreparatoryTime = 6 * 1000; diff --git a/racevisionGame/src/main/java/visualiser/Controllers/RaceController.java b/racevisionGame/src/main/java/visualiser/Controllers/RaceController.java index 381d02ba..02f9e749 100644 --- a/racevisionGame/src/main/java/visualiser/Controllers/RaceController.java +++ b/racevisionGame/src/main/java/visualiser/Controllers/RaceController.java @@ -206,9 +206,9 @@ public class RaceController extends Controller { SeaSurface sea = new SeaSurface(4000, 200, 250, 210); - SkyBox skybox = new SkyBox(4000, 200, 250, 0, 210); - //viewSubjects.addAll(skybox.getSkyBoxPlanes()); - viewSubjects.add(sea.getSurface()); + SkyBox skyBox = new SkyBox(500, 200, 250, 0, 210); + viewSubjects.addAll(skyBox.getSkyBoxPlanes()); + //viewSubjects.add(sea.getSurface()); Boundary3D boundary3D = new Boundary3D(visualiserRace.getVisualiserRaceState().getRaceDataSource().getBoundary(), gpsConverter); for (Subject3D subject3D: boundary3D.getBoundaryNodes()){ diff --git a/racevisionGame/src/main/java/visualiser/layout/SeaSurface.java b/racevisionGame/src/main/java/visualiser/layout/SeaSurface.java index 666503d6..7008ce3f 100644 --- a/racevisionGame/src/main/java/visualiser/layout/SeaSurface.java +++ b/racevisionGame/src/main/java/visualiser/layout/SeaSurface.java @@ -47,6 +47,8 @@ public class SeaSurface { MeshView seaSurface = new MeshView(seaPlane); // Box seaSurface = new Box(noiseArray.length, 0.1, noiseArray.length); seaSurface.setMaterial(material); + seaSurface.setMouseTransparent(true); + seaSurface.toFront(); //seaSurface.setRotationAxis(new Point3D(1, 0, 0)); //seaSurface.setRotate(90); diff --git a/racevisionGame/src/main/java/visualiser/layout/SkyBox.java b/racevisionGame/src/main/java/visualiser/layout/SkyBox.java index a4135bfd..cbb21160 100644 --- a/racevisionGame/src/main/java/visualiser/layout/SkyBox.java +++ b/racevisionGame/src/main/java/visualiser/layout/SkyBox.java @@ -23,8 +23,8 @@ public class SkyBox { private double freq; private List skyBoxPlanes = new ArrayList<>(); - public SkyBox(int size, double freq, double x, double y, double z) { - this.size = size; + public SkyBox(int edgeLength, double freq, double x, double y, double z) { + this.size = edgeLength; this.x = x; this.y = y; this.z = z; @@ -33,88 +33,107 @@ public class SkyBox { } private void makeSkyBox() { - //addTop(); - //addFront(); -// addBack(); + addTop(); + addFront(); + addBack(); addLeft(); -// addRight(); + addRight(); } private void addTop() { - MeshView surface = makeSurface(); + MeshView surface = makeSurface(new Image(getClass().getClassLoader().getResourceAsStream("images/skybox/skyTop.png"))); + + surface.setTranslateX(x); + surface.setTranslateY(y - size); + surface.setTranslateZ(z); Subject3D top = new Subject3D(surface); - top.setX(x); - top.setY(y); - top.setZ(z); skyBoxPlanes.add(top); } private void addLeft() { - MeshView surface = makeSurface(); + MeshView surface = makeSurface(new Image(getClass().getClassLoader().getResourceAsStream("images/skybox/skyLeft.png"))); surface.setTranslateX(size/2); surface.setTranslateY(size/2); - surface.setRotationAxis(new Point3D(0, 1, 0)); + surface.setRotationAxis(new Point3D(1, 0, 0)); surface.setRotate(90); surface.setTranslateX(-size/2); surface.setTranslateY(-size/2); surface.setTranslateX(x); - surface.setTranslateY(y); - surface.setTranslateZ(z); + surface.setTranslateY(y - size/2); + surface.setTranslateZ(z + size/2); Subject3D left = new Subject3D(surface); skyBoxPlanes.add(left); } - private void addBack() { - MeshView surface = makeSurface(); + private void addRight() { + MeshView surface = makeSurface(new Image(getClass().getClassLoader().getResourceAsStream("images/skybox/skyRight.png"))); - Subject3D back = new Subject3D(surface); - back.setX(x); - back.setY(y); - back.setZ(z + size); - skyBoxPlanes.add(back); + surface.setTranslateX(size/2); + surface.setTranslateY(size/2); + surface.setRotationAxis(new Point3D(1, 0, 0)); + surface.setRotate(-90); + surface.setTranslateX(-size/2); + surface.setTranslateY(-size/2); + + surface.setScaleX(-1); + surface.setScaleZ(-1); + + surface.setTranslateX(x); + surface.setTranslateY(y - size/2); + surface.setTranslateZ(z - size/2); + + + Subject3D right = new Subject3D(surface); + skyBoxPlanes.add(right); } - private void addFront() { - MeshView surface = makeSurface(); + private void addBack() { + MeshView surface = makeSurface(new Image(getClass().getClassLoader().getResourceAsStream("images/skybox/skyBack.png"))); + + surface.setTranslateX(size/2); + surface.setTranslateY(size/2); + surface.setRotationAxis(new Point3D(0, 0, 1)); + surface.setRotate(90); + surface.setTranslateX(-size/2); + surface.setTranslateY(-size/2); + + surface.setTranslateX(x - size/2); + surface.setTranslateY(y - size/2); + surface.setTranslateZ(z); Subject3D back = new Subject3D(surface); - back.setX(x); - back.setY(y); - back.setZ(z); skyBoxPlanes.add(back); } - private void addRight() { - MeshView surface = makeSurface(); + private void addFront() { + MeshView surface = makeSurface(new Image(getClass().getClassLoader().getResourceAsStream("images/skybox/skyFront.png"))); surface.setTranslateX(size/2); surface.setTranslateY(size/2); - surface.setRotationAxis(new Point3D(1, 0, 0)); - surface.setRotate(90); + surface.setRotationAxis(new Point3D(0, 0, 1)); + surface.setRotate(-90); surface.setTranslateX(-size/2); surface.setTranslateY(-size/2); - surface.setTranslateX(x); - surface.setTranslateY(y); + surface.setTranslateX(x + size/2); + surface.setTranslateY(y - size/2); surface.setTranslateZ(z); - - Subject3D left = new Subject3D(surface); - skyBoxPlanes.add(left); + Subject3D front = new Subject3D(surface); + skyBoxPlanes.add(front); } - private MeshView makeSurface() { - Image diffuseMap = new Image(getClass().getClassLoader().getResourceAsStream("images/SailIcon.png")); + private MeshView makeSurface(Image diffuseMap) { PhongMaterial material = new PhongMaterial(); - material.setDiffuseColor(Color.BLUE); - //material.setDiffuseMap(diffuseMap); - material.setSpecularColor(Color.WHITE); + //material.setDiffuseColor(Color.BLUE); + material.setDiffuseMap(diffuseMap); + //material.setSpecularColor(Color.WHITE); Plane3D plane = new Plane3D(size, size, 10, 10); MeshView surface = new MeshView(plane); @@ -197,3 +216,4 @@ public class SkyBox { return skyBoxPlanes; } } + diff --git a/racevisionGame/src/main/resources/images/skybox/skyBack.png b/racevisionGame/src/main/resources/images/skybox/skyBack.png new file mode 100644 index 00000000..390ff4e8 Binary files /dev/null and b/racevisionGame/src/main/resources/images/skybox/skyBack.png differ diff --git a/racevisionGame/src/main/resources/images/skybox/skyFront.png b/racevisionGame/src/main/resources/images/skybox/skyFront.png new file mode 100644 index 00000000..4baa0a42 Binary files /dev/null and b/racevisionGame/src/main/resources/images/skybox/skyFront.png differ diff --git a/racevisionGame/src/main/resources/images/skybox/skyLeft.png b/racevisionGame/src/main/resources/images/skybox/skyLeft.png new file mode 100644 index 00000000..9ee2c8b7 Binary files /dev/null and b/racevisionGame/src/main/resources/images/skybox/skyLeft.png differ diff --git a/racevisionGame/src/main/resources/images/skybox/skyRight.png b/racevisionGame/src/main/resources/images/skybox/skyRight.png new file mode 100644 index 00000000..df386ef8 Binary files /dev/null and b/racevisionGame/src/main/resources/images/skybox/skyRight.png differ diff --git a/racevisionGame/src/main/resources/images/skybox/skyTop.png b/racevisionGame/src/main/resources/images/skybox/skyTop.png new file mode 100644 index 00000000..1f939f76 Binary files /dev/null and b/racevisionGame/src/main/resources/images/skybox/skyTop.png differ