Merge remote-tracking branch 'remotes/origin/master' into spectate_mode_basic
This commit is contained in:
@@ -67,7 +67,9 @@ public class NetworkInterface {
|
|||||||
HostedGamesRequestEncoder encoder = new HostedGamesRequestEncoder();
|
HostedGamesRequestEncoder encoder = new HostedGamesRequestEncoder();
|
||||||
try {
|
try {
|
||||||
byte[] message = encoder.encode(new HostGamesRequest(games));
|
byte[] message = encoder.encode(new HostGamesRequest(games));
|
||||||
|
System.out.println(LocalDateTime.now() + ": Sending " + games.size() + " game/s");
|
||||||
for(ClientAddress address: clientsAddresses) {
|
for(ClientAddress address: clientsAddresses) {
|
||||||
|
System.out.println("Sending to " + address.getIp());
|
||||||
serverSocket.send(new DatagramPacket(message, message.length, InetAddress.getByName(address.getIp()), 4941));
|
serverSocket.send(new DatagramPacket(message, message.length, InetAddress.getByName(address.getIp()), 4941));
|
||||||
}
|
}
|
||||||
} catch (InvalidMessageException | IOException e) {
|
} catch (InvalidMessageException | IOException e) {
|
||||||
@@ -85,6 +87,7 @@ public class NetworkInterface {
|
|||||||
scheduler.scheduleAtFixedRate(new TimerTask() {
|
scheduler.scheduleAtFixedRate(new TimerTask() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
System.out.println("flush");
|
||||||
matchTable.getMatchTable().clear();
|
matchTable.getMatchTable().clear();
|
||||||
}
|
}
|
||||||
}, period, period);
|
}, period, period);
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -9,12 +9,12 @@ public class GraphCoordinate {
|
|||||||
/**
|
/**
|
||||||
* X (horizontal) coordinate.
|
* X (horizontal) coordinate.
|
||||||
*/
|
*/
|
||||||
private final int x;
|
private final double x;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Y (vertical) coordinate.
|
* Y (vertical) coordinate.
|
||||||
*/
|
*/
|
||||||
private final int y;
|
private final double y;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor method.
|
* Constructor method.
|
||||||
@@ -22,7 +22,7 @@ public class GraphCoordinate {
|
|||||||
* @param x X coordinate.
|
* @param x X coordinate.
|
||||||
* @param y Y coordinate.
|
* @param y Y coordinate.
|
||||||
*/
|
*/
|
||||||
public GraphCoordinate(int x, int y) {
|
public GraphCoordinate(double x, double y) {
|
||||||
this.x = x;
|
this.x = x;
|
||||||
this.y = y;
|
this.y = y;
|
||||||
}
|
}
|
||||||
@@ -33,7 +33,7 @@ public class GraphCoordinate {
|
|||||||
*
|
*
|
||||||
* @return x axis Coordinate.
|
* @return x axis Coordinate.
|
||||||
*/
|
*/
|
||||||
public int getX() {
|
public double getX() {
|
||||||
return x;
|
return x;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -42,7 +42,7 @@ public class GraphCoordinate {
|
|||||||
*
|
*
|
||||||
* @return y axis Coordinate.
|
* @return y axis Coordinate.
|
||||||
*/
|
*/
|
||||||
public int getY() {
|
public double getY() {
|
||||||
return y;
|
return y;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -239,8 +239,8 @@ public class ResizableRaceCanvas extends ResizableCanvas {
|
|||||||
|
|
||||||
|
|
||||||
//Offset by 20 pixels horizontally.
|
//Offset by 20 pixels horizontally.
|
||||||
long xCoord = coordinate.getX() + 20;
|
double xCoord = coordinate.getX() + 20;
|
||||||
long yCoord = coordinate.getY();
|
double yCoord = coordinate.getY();
|
||||||
|
|
||||||
//If the text would extend out of the canvas (to the right), move it left.
|
//If the text would extend out of the canvas (to the right), move it left.
|
||||||
if (xCoord + (text.length() * 7) >= getWidth()) {
|
if (xCoord + (text.length() * 7) >= getWidth()) {
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ public class MatchBrowserInterface {
|
|||||||
|
|
||||||
public MatchBrowserInterface() {
|
public MatchBrowserInterface() {
|
||||||
try {//132.181.16.13 is the ip of the CI as of 13/9/17
|
try {//132.181.16.13 is the ip of the CI as of 13/9/17
|
||||||
|
//this.IPAddress = InetAddress.getByName("umbrasheep.com"); //InetAddress.getLocalHost();
|
||||||
this.IPAddress = InetAddress.getByName("132.181.16.13"); //InetAddress.getLocalHost();
|
this.IPAddress = InetAddress.getByName("132.181.16.13"); //InetAddress.getLocalHost();
|
||||||
} catch (UnknownHostException e) {
|
} catch (UnknownHostException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
|||||||
@@ -67,8 +67,8 @@ public class GPSConverter {
|
|||||||
|
|
||||||
//Calculate the x and y pixel coordinates.
|
//Calculate the x and y pixel coordinates.
|
||||||
//We take the complement of latProportion to flip it.
|
//We take the complement of latProportion to flip it.
|
||||||
int x = (int) (longProportion * smallerDimension);
|
double x = (longProportion * smallerDimension);
|
||||||
int y = (int) (latProportion * smallerDimension);
|
double y = (latProportion * smallerDimension);
|
||||||
|
|
||||||
//Because we try to maintain the correct aspect ratio, we will end up with "spare" pixels along the larger dimension (e.g., width 800, height 600, 200 extra pixels along width).
|
//Because we try to maintain the correct aspect ratio, we will end up with "spare" pixels along the larger dimension (e.g., width 800, height 600, 200 extra pixels along width).
|
||||||
double extraDistance = Math.abs(longitudeFactor - latitudeFactor);
|
double extraDistance = Math.abs(longitudeFactor - latitudeFactor);
|
||||||
|
|||||||
Reference in New Issue
Block a user