namespace space {
-Camera::Camera(int w, int h, const Vector<float> &t)
+Camera::Camera(Vector<int> s, const Vector<float> &t)
: target(&t)
-, offset(w/2, h/2)
-, zoom(0) {
+, size(s)
+, offset(size / 2)
+, zoom(1)
+, zoomAcc(0) {
}
-void Camera::Resize(int w, int h) {
- offset = Vector<float>(w/2, h/2);
+void Camera::Resize(Vector<int> 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::DoubleZoom() {
- zoom += 1;
+void Camera::StartShrink() {
+ zoomAcc -= 1;
}
-void Camera::HalfZoom() {
- zoom -= 1;
+void Camera::StopShrink() {
+ zoomAcc += 1;
}
}