summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Wu <lekensteyn@gmail.com>2014-01-16 16:55:18 +0100
committerPeter Wu <lekensteyn@gmail.com>2014-01-16 16:55:18 +0100
commit42bab210e00575c2333694dc4238d0f0688e8db9 (patch)
tree9ab6cb95af0e93e78c6512b03c6ea5a1b6b1eec6
parent0706dc0787674ca6bca926e986113aafecfba333 (diff)
download2iv60-robots-42bab210e00575c2333694dc4238d0f0688e8db9.tar.gz
Add toggle to get the focused robot
-rw-r--r--src/Camera.java20
-rw-r--r--src/RobotRace.java10
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;
}