Issue 19 changes.

This commit is contained in:
David Wu
2017-08-17 12:50:41 +12:00
parent 8498701091
commit 6bc81f566e
7 changed files with 71 additions and 8 deletions
@@ -36,6 +36,8 @@ public class HostController extends Controller {
@FXML
AnchorPane hostWrapper;
private Event game;
@Override
public void initialize(URL location, ResourceBundle resources) {
@@ -47,7 +49,7 @@ public class HostController extends Controller {
*/
public void hostGamePressed() throws IOException{
try {
Event game = new Event(false);
this.game = new Event(false);
game.start();
connectSocket("localhost", 4942);
} catch (EventConstructionException e) {
@@ -56,6 +58,10 @@ public class HostController extends Controller {
}
}
public void endEvent() throws IOException {
game.endEvent();
}
/**
* Connect to a socket
* @param address address of the server
@@ -3,10 +3,12 @@ package visualiser.Controllers;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.scene.layout.AnchorPane;
import visualiser.app.App;
import visualiser.gameController.ControllerClient;
import visualiser.model.VisualiserBoat;
import visualiser.model.VisualiserRaceEvent;
import java.io.IOException;
import java.net.Socket;
import java.net.URL;
import java.util.ResourceBundle;
@@ -43,6 +45,8 @@ public class MainController extends Controller {
raceController.startRace(visualiserRace, controllerClient);
}
public void endEvent() throws IOException { hostController.endEvent(); }
/**
* Transitions from the server selection screen to the pre-race lobby for a given server.
* @param socket The server to read data from.
@@ -62,7 +66,13 @@ public class MainController extends Controller {
/**
* Transitions into the title screen
*/
public void enterTitle(){ titleController.enterTitle(); }
public void enterTitle() {
try {
App.loadStart(App.getStage());
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* Transitions into lobby screen
@@ -11,6 +11,7 @@ import javafx.fxml.FXML;
import javafx.scene.chart.LineChart;
import javafx.scene.control.*;
import javafx.scene.control.Label;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.GridPane;
@@ -25,6 +26,7 @@ import visualiser.gameController.Keys.KeyFactory;
import visualiser.model.*;
import visualiser.network.ServerConnection;
import java.io.IOException;
import java.net.URL;
import java.util.ResourceBundle;
import java.util.logging.Level;
@@ -121,6 +123,15 @@ public class RaceController extends Controller {
Logger.getGlobal().log(Level.WARNING, "RaceController was interrupted on thread: " + Thread.currentThread() + "while sending: " + controlKey, e);
}
}
if(event.getCode() == KeyCode.ESCAPE){
race.setVisible(false);
try {
parent.endEvent();
} catch (IOException e) {
e.printStackTrace();
}
parent.enterTitle();
}
});
}
@@ -11,6 +11,8 @@ import javafx.stage.Stage;
import javafx.stage.WindowEvent;
import visualiser.Controllers.MainController;
import java.io.IOException;
public class App extends Application {
private static Stage stage;
@@ -36,16 +38,22 @@ public class App extends Application {
System.exit(0);
}
});
FXMLLoader loader = new FXMLLoader(getClass().getResource("/visualiser/scenes/main.fxml"));
App.stage = stage;
loadStart(App.stage);
}
public static void loadStart(Stage stage) throws IOException {
FXMLLoader loader = new FXMLLoader(App.class.getResource("/visualiser/scenes/main.fxml"));
Parent root = loader.load();
stage.setResizable(false);
MainController mc = (MainController) loader.getController();
mc.enterTitle();
Scene scene = new Scene(root);
stage.setScene(scene);
stage.setTitle("RaceVision - Team 7");
stage.getIcons().add(new Image(getClass().getClassLoader().getResourceAsStream("images/SailIcon.png")));
stage.getIcons().add(new Image(App.class.getClassLoader().getResourceAsStream("images/SailIcon.png")));
mc.startCss();
setStage(stage);
stage.show();