Merge branch 'boat_color_and_speed' into 'master'

Boat color and speed

- Boats are colored by their assigned color.
- Boat name is displayed in lobby.
- Boats don't move quite so fast.

See merge request !50
main
Hamish Ball 8 years ago
commit 97aa917403

@ -91,7 +91,7 @@ public class RaceLogic implements RunnableWithFramePeriod, Observer {
server.parseSnapshot(); server.parseSnapshot();
waitForFramePeriod(previousFrameTime, currentTime, 50); waitForFramePeriod(previousFrameTime, currentTime, 16);
previousFrameTime = currentTime; previousFrameTime = currentTime;
} }
} }
@ -128,7 +128,7 @@ public class RaceLogic implements RunnableWithFramePeriod, Observer {
race.setBoatsStatusToRacing(); race.setBoatsStatusToRacing();
} }
waitForFramePeriod(previousFrameTime, currentTime, 50); waitForFramePeriod(previousFrameTime, currentTime, 16);
previousFrameTime = currentTime; previousFrameTime = currentTime;
} }
@ -206,7 +206,7 @@ public class RaceLogic implements RunnableWithFramePeriod, Observer {
previousFrameTime = currentTime; previousFrameTime = currentTime;
} }
waitForFramePeriod(previousFrameTime, currentTime, 50); waitForFramePeriod(previousFrameTime, currentTime, 16);
previousFrameTime = currentTime; previousFrameTime = currentTime;
} }
} }

@ -28,7 +28,7 @@ public class Constants {
* Frame periods are multiplied by this to get the amount of time a single frame represents. * Frame periods are multiplied by this to get the amount of time a single frame represents.
* E.g., frame period = 20ms, scale = 5, frame represents 20 * 5 = 100ms, and so boats are simulated for 100ms, even though only 20ms actually occurred. * E.g., frame period = 20ms, scale = 5, frame represents 20 * 5 = 100ms, and so boats are simulated for 100ms, even though only 20ms actually occurred.
*/ */
public static final int RaceTimeScale = 10; public static final int RaceTimeScale = 2;
/** /**
* The race pre-start time, in milliseconds. 30 seconds. * The race pre-start time, in milliseconds. 30 seconds.

@ -15,6 +15,7 @@ import javafx.scene.control.Label;
import javafx.scene.image.ImageView; import javafx.scene.image.ImageView;
import javafx.scene.layout.AnchorPane; import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.GridPane; import javafx.scene.layout.GridPane;
import javafx.scene.paint.PhongMaterial;
import javafx.scene.shape.MeshView; import javafx.scene.shape.MeshView;
import mock.app.Event; import mock.app.Event;
import network.Messages.Enums.RaceStatusEnum; import network.Messages.Enums.RaceStatusEnum;
@ -144,6 +145,8 @@ public class InGameLobbyController extends Controller {
subjects.add(sea); subjects.add(sea);
MeshView mesh = new MeshView(importer.getImport()); MeshView mesh = new MeshView(importer.getImport());
PhongMaterial boatColorMat = new PhongMaterial(boat.getColor());
mesh.setMaterial(boatColorMat);
Subject3D subject = new Subject3D(mesh,0); Subject3D subject = new Subject3D(mesh,0);
subjects.add(subject); subjects.add(subject);
@ -161,7 +164,7 @@ public class InGameLobbyController extends Controller {
}; };
rotate.start(); rotate.start();
allPlayerLabels.get(count).setText("Player: " + boat.getSourceID()); allPlayerLabels.get(count).setText(boat.getName());
allPlayerLabels.get(count).toFront(); allPlayerLabels.get(count).toFront();
count += 1; count += 1;
if (count > 2){ if (count > 2){

@ -305,6 +305,8 @@ public class RaceViewController extends Controller {
} else { } else {
mesh = new MeshView(importerBurgerBoat.getImport()); mesh = new MeshView(importerBurgerBoat.getImport());
} }
PhongMaterial boatColorMat = new PhongMaterial(boat.getColor());
mesh.setMaterial(boatColorMat);
Subject3D boatModel = new Subject3D(mesh, boat.getSourceID()); Subject3D boatModel = new Subject3D(mesh, boat.getSourceID());
viewSubjects.add(boatModel); viewSubjects.add(boatModel);

Loading…
Cancel
Save