From 42bab210e00575c2333694dc4238d0f0688e8db9 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Thu, 16 Jan 2014 16:55:18 +0100 Subject: Add toggle to get the focused robot --- src/Camera.java | 20 +++++++++++++++++--- 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; } -- cgit v1.2.1