diff options
author | Peter Wu <lekensteyn@gmail.com> | 2014-01-16 19:46:58 +0100 |
---|---|---|
committer | Peter Wu <lekensteyn@gmail.com> | 2014-01-16 19:46:58 +0100 |
commit | a14efbaf74ad6a21d5dceecf742b41c5fb4939d1 (patch) | |
tree | de45f8b5996f8f502ff55a423f2f0f7cd9ba47db | |
parent | 42bab210e00575c2333694dc4238d0f0688e8db9 (diff) | |
parent | e59c165cb6e17f1967e40ce0eff352412581430f (diff) | |
download | 2iv60-robots-a14efbaf74ad6a21d5dceecf742b41c5fb4939d1.tar.gz |
Merge branch 'master' of git.lekensteyn.nl:tue/2iv60-robots
-rw-r--r-- | src/Camera.java | 16 | ||||
-rw-r--r-- | src/RaceTrack.java | 10 | ||||
-rw-r--r-- | src/Robot.java | 7 | ||||
-rw-r--r-- | src/heightmap.bmp | bin | 5140 -> 5140 bytes | |||
-rw-r--r-- | src/track.jpg | bin | 111409 -> 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 Binary files differindex 355d005..2532f0c 100644 --- a/src/heightmap.bmp +++ b/src/heightmap.bmp diff --git a/src/track.jpg b/src/track.jpg Binary files differindex 72995f8..7c32ce6 100644 --- a/src/track.jpg +++ b/src/track.jpg |