diff options
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; |