]> git.localhorst.tv Git - space.git/blobdiff - src/graphics/Camera.cpp
dynamic zoom
[space.git] / src / graphics / Camera.cpp
index a72157a9ccc15c2e02d54929812b876a257fa249..553b74f77f0f9afbd36e1f6373d1b7b41bda50b5 100644 (file)
@@ -6,7 +6,7 @@ namespace space {
 Camera::Camera(int w, int h, const Vector<float> &t)
 : target(&t)
 , offset(w/2, h/2)
-, zoom(0) {
+, zoom(1) {
 
 }
 
@@ -16,15 +16,24 @@ void Camera::Resize(int w, int h) {
 }
 
 void Camera::Update(float delta) {
+       zoom += zoom * zoomAcc * delta;
+       if (zoom < 0.0001) zoom = 0.0001;
+}
+
+void Camera::StartZoom() {
+       zoomAcc += 1;
+}
 
+void Camera::StopZoom() {
+       zoomAcc -= 1;
 }
 
-void Camera::DoubleZoom() {
-       zoom += 1;
+void Camera::StartShrink() {
+       zoomAcc -= 1;
 }
 
-void Camera::HalfZoom() {
-       zoom -= 1;
+void Camera::StopShrink() {
+       zoomAcc += 1;
 }
 
 }