diff options
author | Peter Wu <lekensteyn@gmail.com> | 2014-01-16 16:55:18 +0100 |
---|---|---|
committer | Peter Wu <lekensteyn@gmail.com> | 2014-01-16 16:55:18 +0100 |
commit | 42bab210e00575c2333694dc4238d0f0688e8db9 (patch) | |
tree | 9ab6cb95af0e93e78c6512b03c6ea5a1b6b1eec6 | |
parent | 0706dc0787674ca6bca926e986113aafecfba333 (diff) | |
download | 2iv60-robots-42bab210e00575c2333694dc4238d0f0688e8db9.tar.gz |
Add toggle to get the focused robot
-rw-r--r-- | src/Camera.java | 20 | ||||
-rw-r--r-- | src/RobotRace.java | 10 |
2 files changed, 27 insertions, 3 deletions
diff --git a/src/Camera.java b/src/Camera.java index fde3d80..740328e 100644 --- a/src/Camera.java +++ b/src/Camera.java @@ -30,6 +30,13 @@ class Camera { */ private final Robot[] robots; + /** + * True if the robot with the highest speed should be focused in Helicopter, + * Motor and FP mode; false if the robot that made the longest distance + * should be focused. + */ + boolean followTopSpeed = true; + public Camera(GlobalState gs, RaceTrack track, Robot[] robots) { this.gs = gs; this.track = track; @@ -201,9 +208,16 @@ class Camera { Robot selected = robots[0]; for (Robot robot : robots) { // Many possibilities here, fastest, slowest, loser, winner... - if (selected.getSpeed() < robot.getSpeed()) { - // select the fastest accelerating robot. - selected = robot; + if (followTopSpeed) { + if (selected.getSpeed() < robot.getSpeed()) { + // select fastest robot, the one walking in the front + selected = robot; + } + } else { + if (selected.getTimePos() < robot.getTimePos()) { + // select the fastest accelerating robot. + selected = robot; + } } } return selected; diff --git a/src/RobotRace.java b/src/RobotRace.java index 53cd9d2..c07988f 100644 --- a/src/RobotRace.java +++ b/src/RobotRace.java @@ -668,6 +668,16 @@ public class RobotRace extends Base { robotRace.mainWindow.updateElements(); } return true; + case KeyEvent.VK_F: /* toggle robot to Focus on */ + robotRace.camera.followTopSpeed = !robotRace.camera.followTopSpeed; + String what; + if (robotRace.camera.followTopSpeed) { + what = "with the highest speed"; + } else { + what = "that made the most meters"; + } + System.err.println("Now following the robot " + what); + return true; default: return false; } |