Tweaks ParallaxBackground to work better with zoom. Ensures a Parallax Layer with a (1,1) motion scale synchs perfectly with a regular stationary sprite that is outside the ParallaxBackground, regardless of the zoom level and movement of the camera.

This commit is contained in:
Sofox 2017-10-15 23:32:43 +01:00
parent 0d0cb01f33
commit aaf6e77198

View file

@ -49,8 +49,8 @@ void ParallaxBackground::_notification(int p_what) {
void ParallaxBackground::_camera_moved(const Transform2D &p_transform) { void ParallaxBackground::_camera_moved(const Transform2D &p_transform) {
set_scroll_offset(p_transform.get_origin());
set_scroll_scale(p_transform.get_scale().dot(Vector2(0.5, 0.5))); set_scroll_scale(p_transform.get_scale().dot(Vector2(0.5, 0.5)));
set_scroll_offset(p_transform.get_origin() / p_transform.get_scale());
} }
void ParallaxBackground::set_scroll_scale(float p_scale) { void ParallaxBackground::set_scroll_scale(float p_scale) {