summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Wu <lekensteyn@gmail.com>2014-01-16 19:46:58 +0100
committerPeter Wu <lekensteyn@gmail.com>2014-01-16 19:46:58 +0100
commita14efbaf74ad6a21d5dceecf742b41c5fb4939d1 (patch)
treede45f8b5996f8f502ff55a423f2f0f7cd9ba47db
parent42bab210e00575c2333694dc4238d0f0688e8db9 (diff)
parente59c165cb6e17f1967e40ce0eff352412581430f (diff)
download2iv60-robots-a14efbaf74ad6a21d5dceecf742b41c5fb4939d1.tar.gz
Merge branch 'master' of git.lekensteyn.nl:tue/2iv60-robots
-rw-r--r--src/Camera.java16
-rw-r--r--src/RaceTrack.java10
-rw-r--r--src/Robot.java7
-rw-r--r--src/heightmap.bmpbin5140 -> 5140 bytes
-rw-r--r--src/track.jpgbin111409 -> 102380 bytes
5 files changed, 28 insertions, 5 deletions
diff --git a/src/Camera.java b/src/Camera.java
index 740328e..c1b220b 100644
--- a/src/Camera.java
+++ b/src/Camera.java
@@ -162,7 +162,7 @@ class Camera {
/**
* First person mode: look from the slowest robot forward.
*/
- FocusPosition focus = smoothFocusTo(getSlowestRobot());
+ FocusPosition focus = smoothFocusTo(getLastRobot());
// trivial: looks from the robot POV.
eye = track.getPointForLane(focus.getTimePos(), focus.getLane());
@@ -235,6 +235,20 @@ class Camera {
}
return slowest;
}
+
+ /**
+ * Returns the robot which is placed last in the race.
+ */
+ private Robot getLastRobot() {
+ Robot last = robots[0];
+
+ for (Robot robot : robots) {
+ if (robot.getPositionMeters() < last.getPositionMeters()) {
+ last = robot;
+ }
+ }
+ return last;
+ }
/**
* Time when the transition started;
diff --git a/src/RaceTrack.java b/src/RaceTrack.java
index 01a28c2..0dfb194 100644
--- a/src/RaceTrack.java
+++ b/src/RaceTrack.java
@@ -188,15 +188,17 @@ class RaceTrack extends BetterBase {
}
// Draw track itself
+ // Every 20 segments a distance line is drawn,
+ // and at the start, a start line is drawn.
gl.glBegin(GL_QUADS);
glNormal(Vector.Z);
- gl.glTexCoord2f(0, 0);
+ gl.glTexCoord2f(i == 1 ? 0 : 0.2f, 0);
glVertex(point_A);
- gl.glTexCoord2f(1, 0);
+ gl.glTexCoord2f(i % 20 == 0 && i != SEGMENTS ? 1f : 0.8f, 0);
glVertex(point_C);
- gl.glTexCoord2f(1, 1);
+ gl.glTexCoord2f(i % 20 == 0 && i != SEGMENTS ? 1f : 0.8f, 1f);
glVertex(point_D);
- gl.glTexCoord2f(0, 1);
+ gl.glTexCoord2f(i == 1 ? 0 : 0.2f, 1f);
glVertex(point_B);
gl.glEnd();
}
diff --git a/src/Robot.java b/src/Robot.java
index 612ecec..36a6f6e 100644
--- a/src/Robot.java
+++ b/src/Robot.java
@@ -546,6 +546,13 @@ class Robot extends BetterBase {
public double getSpeed() {
return speed;
}
+
+ /**
+ * Gets the total distance traveled by the robot.
+ */
+ public double getPositionMeters() {
+ return robot_pos_meters;
+ }
/**
* Move the robot with the number of seconds based on its current speed.
diff --git a/src/heightmap.bmp b/src/heightmap.bmp
index 355d005..2532f0c 100644
--- a/src/heightmap.bmp
+++ b/src/heightmap.bmp
Binary files differ
diff --git a/src/track.jpg b/src/track.jpg
index 72995f8..7c32ce6 100644
--- a/src/track.jpg
+++ b/src/track.jpg
Binary files differ