diff options
Diffstat (limited to 'src/RobotRace.java')
-rw-r--r-- | src/RobotRace.java | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/RobotRace.java b/src/RobotRace.java index f3d6b8a..f310997 100644 --- a/src/RobotRace.java +++ b/src/RobotRace.java @@ -16,6 +16,7 @@ import robotrace.Vector; import static java.lang.Math.*; import java.net.URI; import java.net.URISyntaxException; +import java.util.Arrays; import java.util.Locale; import java.util.Random; @@ -648,6 +649,23 @@ public class RobotRace extends Base { System.err.println("Triggering pause..."); robotRace.requestPauseToggle = true; return true; + case KeyEvent.VK_O: /* camera mode: Overview */ + case KeyEvent.VK_H: /* camera mode: Helicopter */ + case KeyEvent.VK_M: /* camera mode: Motorcycle */ + if (robotRace.mainWindow != null) { + System.err.println("Changing camera to: " + e.getKeyChar()); + // map from camera mode (array index) to key codes + Integer cameraModes[] = new Integer[] { + KeyEvent.VK_O, /* 0: default mode (Overview) */ + KeyEvent.VK_H, /* 1: helicopter */ + KeyEvent.VK_M, /* 2: Motor cycle */ + }; + int i = Arrays.asList(cameraModes).indexOf(e.getKeyCode()); + assert i != -1 : "Camera mode not found for key"; + robotRace.gs.camMode = i; + robotRace.mainWindow.updateElements(); + } + return true; default: return false; } |