Implemented tutorial for zooming as it was left out from the last commit. Refactored updating tutorial state. #story[1189]
This commit is contained in:
@@ -12,7 +12,6 @@ import javafx.scene.chart.LineChart;
|
|||||||
import javafx.scene.control.*;
|
import javafx.scene.control.*;
|
||||||
import javafx.scene.input.KeyCode;
|
import javafx.scene.input.KeyCode;
|
||||||
import javafx.scene.input.KeyEvent;
|
import javafx.scene.input.KeyEvent;
|
||||||
import javafx.scene.input.ScrollEvent;
|
|
||||||
import javafx.scene.layout.GridPane;
|
import javafx.scene.layout.GridPane;
|
||||||
import javafx.scene.layout.StackPane;
|
import javafx.scene.layout.StackPane;
|
||||||
import javafx.scene.shape.MeshView;
|
import javafx.scene.shape.MeshView;
|
||||||
@@ -27,7 +26,6 @@ import visualiser.app.App;
|
|||||||
import visualiser.enums.TutorialState;
|
import visualiser.enums.TutorialState;
|
||||||
import visualiser.gameController.ControllerClient;
|
import visualiser.gameController.ControllerClient;
|
||||||
import visualiser.gameController.Keys.ControlKey;
|
import visualiser.gameController.Keys.ControlKey;
|
||||||
import visualiser.gameController.Keys.KeyFactory;
|
|
||||||
import visualiser.layout.Subject3D;
|
import visualiser.layout.Subject3D;
|
||||||
import visualiser.layout.View3D;
|
import visualiser.layout.View3D;
|
||||||
import visualiser.model.*;
|
import visualiser.model.*;
|
||||||
@@ -122,11 +120,11 @@ public class RaceController extends Controller {
|
|||||||
controlKey.onAction(); // Change key state if applicable
|
controlKey.onAction(); // Change key state if applicable
|
||||||
|
|
||||||
if (isTutorial){
|
if (isTutorial){
|
||||||
if (controlKey.getProtocolCode().equals(currentState.getAction())){
|
|
||||||
updateTutorialState();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (controlKey.getProtocolCode().equals(currentState.getAction())){
|
||||||
|
checkTutorialState();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
controllerClient.sendKey(controlKey);
|
controllerClient.sendKey(controlKey);
|
||||||
event.consume();
|
event.consume();
|
||||||
@@ -257,9 +255,23 @@ public class RaceController extends Controller {
|
|||||||
if(key != null) {
|
if(key != null) {
|
||||||
switch (key.toString()) {
|
switch (key.toString()) {
|
||||||
case "Zoom In":
|
case "Zoom In":
|
||||||
|
if (currentState.equals(TutorialState.ZOOMIN)) {
|
||||||
|
try {
|
||||||
|
checkTutorialState();
|
||||||
|
} catch (Exception e1) {
|
||||||
|
e1.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
view3D.updateDistance(-10);
|
view3D.updateDistance(-10);
|
||||||
break;
|
break;
|
||||||
case "Zoom Out":
|
case "Zoom Out":
|
||||||
|
if (currentState.equals(TutorialState.ZOOMOUT)) {
|
||||||
|
try {
|
||||||
|
checkTutorialState();
|
||||||
|
} catch (Exception e1) {
|
||||||
|
e1.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
view3D.updateDistance(10);
|
view3D.updateDistance(10);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -451,10 +463,10 @@ public class RaceController extends Controller {
|
|||||||
if (parent.getGameType()==2){
|
if (parent.getGameType()==2){
|
||||||
isTutorial = true;
|
isTutorial = true;
|
||||||
tutorialStates = new ArrayList<>(Arrays.asList(TutorialState.values()));
|
tutorialStates = new ArrayList<>(Arrays.asList(TutorialState.values()));
|
||||||
|
System.out.println(tutorialStates);
|
||||||
currentState = tutorialStates.get(0);
|
currentState = tutorialStates.get(0);
|
||||||
tutorialStates.remove(0);
|
tutorialStates.remove(0);
|
||||||
System.out.println(currentState);
|
System.out.println("Welcome to tutorial. Exit at anytime with ESC. Turn upwind.");
|
||||||
System.out.println(tutorialStates);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -555,35 +567,43 @@ public class RaceController extends Controller {
|
|||||||
infoTableShow = !infoTableShow;
|
infoTableShow = !infoTableShow;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateTutorialState() throws Exception {
|
private void updateTutorialState(){
|
||||||
|
currentState = tutorialStates.get(0);
|
||||||
|
tutorialStates.remove(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void checkTutorialState() throws Exception {
|
||||||
switch (currentState){
|
switch (currentState){
|
||||||
case UPWIND:
|
case UPWIND:
|
||||||
System.out.println("You turned upwind. Now go downwind.");
|
System.out.println("You turned upwind. Now go downwind.");
|
||||||
currentState = tutorialStates.get(0);
|
updateTutorialState();
|
||||||
tutorialStates.remove(0);
|
|
||||||
break;
|
break;
|
||||||
case DOWNWIND:
|
case DOWNWIND:
|
||||||
System.out.println("You turned downwind. Now go tack/gybe.");
|
System.out.println("You turned downwind. Now go tack/gybe.");
|
||||||
currentState = tutorialStates.get(0);
|
updateTutorialState();
|
||||||
tutorialStates.remove(0);
|
|
||||||
break;
|
break;
|
||||||
case TACKGYBE:
|
case TACKGYBE:
|
||||||
System.out.println("You tack/gybe. Now go VMG.");
|
System.out.println("You tack/gybe. Now go VMG.");
|
||||||
currentState = tutorialStates.get(0);
|
updateTutorialState();
|
||||||
tutorialStates.remove(0);
|
|
||||||
break;
|
break;
|
||||||
case VMG:
|
case VMG:
|
||||||
System.out.println("You VMG. Now sails-in.");
|
System.out.println("You VMG. Now sails-in.");
|
||||||
currentState = tutorialStates.get(0);
|
updateTutorialState();
|
||||||
tutorialStates.remove(0);
|
|
||||||
break;
|
break;
|
||||||
case SAILSIN:
|
case SAILSIN:
|
||||||
System.out.println("You sails-in. Now sails-out.");
|
System.out.println("You sails-in. Now sails-out.");
|
||||||
currentState = tutorialStates.get(0);
|
updateTutorialState();
|
||||||
tutorialStates.remove(0);
|
|
||||||
break;
|
break;
|
||||||
case SAILSOUT:
|
case SAILSOUT:
|
||||||
System.out.println("You sails-out. Tutorial finished. Well done!");
|
System.out.println("You sails-out. Now zoom in.");
|
||||||
|
updateTutorialState();
|
||||||
|
break;
|
||||||
|
case ZOOMIN:
|
||||||
|
System.out.println("You zoomed in. Now zoom out.");
|
||||||
|
updateTutorialState();
|
||||||
|
break;
|
||||||
|
case ZOOMOUT:
|
||||||
|
System.out.println("You zoomed out. Tutorial finished. Well done!");
|
||||||
Alert alert = new Alert(Alert.AlertType.INFORMATION);
|
Alert alert = new Alert(Alert.AlertType.INFORMATION);
|
||||||
alert.setTitle("Finished Tutorial");
|
alert.setTitle("Finished Tutorial");
|
||||||
alert.setHeaderText("You have finished the tutorial.");
|
alert.setHeaderText("You have finished the tutorial.");
|
||||||
|
|||||||
@@ -51,7 +51,13 @@ public enum TutorialState {
|
|||||||
/**
|
/**
|
||||||
* State for sails-out in tutorial
|
* State for sails-out in tutorial
|
||||||
*/
|
*/
|
||||||
SAILSOUT(BoatActionEnum.SAILS_OUT);
|
SAILSOUT(BoatActionEnum.SAILS_OUT),
|
||||||
|
|
||||||
|
ZOOMIN(null),
|
||||||
|
|
||||||
|
ZOOMOUT(null);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private BoatActionEnum action;
|
private BoatActionEnum action;
|
||||||
|
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
<?import javafx.scene.layout.StackPane?>
|
<?import javafx.scene.layout.StackPane?>
|
||||||
<?import javafx.scene.text.Font?>
|
<?import javafx.scene.text.Font?>
|
||||||
|
|
||||||
<SplitPane fx:id="racePane" dividerPositions="1.0" prefHeight="431.0" prefWidth="610.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="visualiser.Controllers.RaceController">
|
<SplitPane fx:id="racePane" dividerPositions="1.0" prefHeight="431.0" prefWidth="610.0" visible="false" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="visualiser.Controllers.RaceController">
|
||||||
<items>
|
<items>
|
||||||
<GridPane fx:id="canvasBase">
|
<GridPane fx:id="canvasBase">
|
||||||
<columnConstraints>
|
<columnConstraints>
|
||||||
|
|||||||
Reference in New Issue
Block a user