| 28 | , _viewSize() { } |
| 29 | |
| 30 | void PlatformCamera::setPosition(const Vec2& position) { |
| 31 | _camPos = position; |
| 32 | Vec2 newPos = position; |
| 33 | Vec2 pos = _position; |
| 34 | if (_boundary != Rect::zero) { |
| 35 | Size viewSize = Size{_viewSize.width / _zoom, _viewSize.height / _zoom}; |
| 36 | float xOffset = viewSize.width / 2.0f; |
| 37 | float yOffset = viewSize.height / 2.0f; |
| 38 | newPos = { |
| 39 | Math::clamp(position.x, _boundary.getLeft() + xOffset, _boundary.getRight() - xOffset), |
| 40 | Math::clamp(position.y, _boundary.getBottom() + yOffset, _boundary.getTop() - yOffset)}; |
| 41 | pos = { |
| 42 | Math::clamp(pos.x, _boundary.getLeft() + xOffset, _boundary.getRight() - xOffset), |
| 43 | Math::clamp(pos.y, _boundary.getBottom() + yOffset, _boundary.getTop() - yOffset)}; |
| 44 | } |
| 45 | _position.x = _target.x = newPos.x; |
| 46 | _position.y = _target.y = newPos.y; |
| 47 | _transformDirty = true; |
| 48 | moved(newPos.x - pos.x, newPos.y - pos.y); |
| 49 | } |
| 50 | |
| 51 | void PlatformCamera::setRotation(float var) { |
| 52 | _rotation = var; |