X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fgraphics%2FCamera.cpp;h=74ebd5f6fb3759f99870ec618af5ed20b5c707e6;hb=1129b8ac89f1e614f69793227ccec90157708aea;hp=0994a5ab8f0dd9cebe25f54dbdf46fbbf7c36bfd;hpb=96ab5904b059e00e78b26a6527790c8dc951e324;p=space.git diff --git a/src/graphics/Camera.cpp b/src/graphics/Camera.cpp index 0994a5a..74ebd5f 100644 --- a/src/graphics/Camera.cpp +++ b/src/graphics/Camera.cpp @@ -3,15 +3,40 @@ namespace space { -Camera::Camera(int w, int h, const Vector &t) +Camera::Camera(Vector s, const Vector &t) : target(&t) -, offset(w/2, h/2) { +, size(s) +, offset(size / 2) +, zoom(1) +, zoomAcc(0) { } -void Camera::Resize(int w, int h) { - offset = Vector(w/2, h/2); +void Camera::Resize(Vector s) { + size = s; + offset = size / 2; +} + +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::StartShrink() { + zoomAcc -= 1; +} + +void Camera::StopShrink() { + zoomAcc += 1; } }