Merged develop in and reimplemented keybindings for moving the camera.

tags : #story[1273]
This commit is contained in:
Alistair McIntyre
2017-09-26 18:01:39 +13:00
parent 69d1fa9488
commit 99ce4fa11d
2 changed files with 18 additions and 21 deletions
@@ -52,6 +52,10 @@ public class GameKeyBind {
return instance.actionToKeyMap.get(keyAction); return instance.actionToKeyMap.get(keyAction);
} }
public KeyAction getKeyAction(KeyCode keyCode) {
return instance.keyToActionMap.get(keyCode);
}
/** /**
* Binds a key to a key action * Binds a key to a key action
* *
@@ -23,7 +23,9 @@ import javafx.scene.transform.Scale;
import javafx.scene.transform.Translate; import javafx.scene.transform.Translate;
import seng302.gameServer.messages.RoundingSide; import seng302.gameServer.messages.RoundingSide;
import seng302.model.ClientYacht; import seng302.model.ClientYacht;
import seng302.model.GameKeyBind;
import seng302.model.GeoPoint; import seng302.model.GeoPoint;
import seng302.model.KeyAction;
import seng302.model.Limit; import seng302.model.Limit;
import seng302.model.mark.CompoundMark; import seng302.model.mark.CompoundMark;
import seng302.model.mark.Corner; import seng302.model.mark.Corner;
@@ -121,6 +123,8 @@ public class GameView3D {
scene.addEventHandler(KeyEvent.KEY_PRESSED, this::cameraMovement); scene.addEventHandler(KeyEvent.KEY_PRESSED, this::cameraMovement);
} }
}); });
} }
public void updateCourse(List<CompoundMark> newCourse, List<Corner> sequence) { public void updateCourse(List<CompoundMark> newCourse, List<Corner> sequence) {
@@ -345,7 +349,6 @@ public class GameView3D {
* it to distanceScaleFactor Returns the max horizontal distance of the map. * it to distanceScaleFactor Returns the max horizontal distance of the map.
*/ */
private double scaleRaceExtremities() { private double scaleRaceExtremities() {
double vertAngle = Math.abs( double vertAngle = Math.abs(
GeoUtility.getBearingRad(minLatPoint, maxLatPoint) GeoUtility.getBearingRad(minLatPoint, maxLatPoint)
); );
@@ -413,38 +416,28 @@ public class GameView3D {
} }
public void cameraMovement(KeyEvent event) { public void cameraMovement(KeyEvent event) {
switch (event.getCode()) { GameKeyBind keyBinds = GameKeyBind.getInstance();
case NUMPAD8: KeyAction keyPressed = keyBinds.getKeyAction(event.getCode());
view.getCamera().getTransforms().addAll(new Rotate(0.5, new Point3D(1, 0, 0))); switch (keyPressed) {
break; case ZOOM_IN:
case NUMPAD2:
view.getCamera().getTransforms().addAll(new Rotate(-0.5, new Point3D(1, 0, 0)));
break;
case NUMPAD4:
view.getCamera().getTransforms().addAll(new Rotate(-0.5, new Point3D(0, 1, 0)));
break;
case NUMPAD6:
view.getCamera().getTransforms().addAll(new Rotate(0.5, new Point3D(0, 1, 0)));
break;
case Z:
((RaceCamera) view.getCamera()).zoomIn(); ((RaceCamera) view.getCamera()).zoomIn();
break; break;
case X: case ZOOM_OUT:
((RaceCamera) view.getCamera()).zoomOut(); ((RaceCamera) view.getCamera()).zoomOut();
break; break;
case W: case FORWARD:
((RaceCamera) view.getCamera()).panUp(); ((RaceCamera) view.getCamera()).panUp();
break; break;
case S: case BACKWARD:
((RaceCamera) view.getCamera()).panDown(); ((RaceCamera) view.getCamera()).panDown();
break; break;
case A: case LEFT:
((RaceCamera) view.getCamera()).panLeft(); ((RaceCamera) view.getCamera()).panLeft();
break; break;
case D: case RIGHT:
((RaceCamera) view.getCamera()).panRight(); ((RaceCamera) view.getCamera()).panRight();
break; break;
case F1: case VIEW:
toggleCamera(); toggleCamera();
break; break;
} }