diff options
author | Stijn Buys <ingar@osirion.org> | 2007-10-27 13:18:04 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2007-10-27 13:18:04 +0000 |
commit | aa50057b86c35de70ed87921ecdb1288e7e17e41 (patch) | |
tree | 20e20f38e230464b6dbd4d5aae6677a33a91a8e0 /src/client/camera.cc | |
parent | babef2ec1d88b6057b0e17bf1c04dfa3c9d0d5a0 (diff) |
camera handling updates
Diffstat (limited to 'src/client/camera.cc')
-rw-r--r-- | src/client/camera.cc | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/src/client/camera.cc b/src/client/camera.cc index 6a6da0c..bc8ee3e 100644 --- a/src/client/camera.cc +++ b/src/client/camera.cc @@ -20,10 +20,10 @@ Camera::Camera() pitch_track = -15.0f; offset_inc = 5.0f; - yaw = 0; + yaw_current = 0; yaw_target = 0; - pitch = pitch_track * 2; + pitch_current = pitch_track * 2; pitch_target = pitch_track; distance = 0.4f; @@ -42,23 +42,23 @@ void Camera::draw(float elapsed) } // adjust yaw - float d = degreesf(yaw - yaw_target); - yaw = degreesf( yaw - d * elapsed) ; + float d = degreesf(yaw_current - yaw_target); + yaw_current = degreesf( yaw_current - d * elapsed) ; // adjust pitch target - d = degreesf(pitch - pitch_target); - pitch = degreesf( pitch - d *elapsed); + d = degreesf(pitch_current - pitch_target); + pitch_current = degreesf( pitch_current - d *elapsed); switch (mode) { case Free: - gl::translate(1.0f+distance, -distance, 0.0f); - gl::rotate(-pitch, 0, 0, 1.0f); - gl::rotate(-yaw, 0, 1.0f, 0); + gl::translate(1.0f+distance, -distance/2, 0.0f); + gl::rotate(-pitch_current, 0, 0, 1.0f); + gl::rotate(-yaw_current, 0, 1.0f, 0); break; case Track: gl::translate(1.0f+distance, -distance , 0.0f); - gl::rotate(-pitch, 0, 0, 1.0f); - gl::rotate(-yaw, 0, 1.0f, 0); + gl::rotate(-pitch_current, 0, 0, 1.0f); + gl::rotate(-yaw_current, 0, 1.0f, 0); break; default: break; @@ -101,17 +101,17 @@ void Camera::nextmode() { // switch camera to Track mode mode = Track; yaw_target = game::ship.yaw; - yaw = yaw_target; + yaw_current = yaw_target; pitch_target = pitch_track; - pitch = pitch_target; + pitch_current = pitch_target; break; case Track: // switch camera to Free mode mode = Free; yaw_target = game::ship.yaw; - yaw = yaw_target; + yaw_current = yaw_target; pitch_target = pitch_track; - pitch = pitch_target; + pitch_current = pitch_target; break; default: break; |