@@ -74,19 +74,21 @@ void Camera2D::_update_process_callback() {
74
74
}
75
75
}
76
76
77
- void Camera2D::set_zoom (const Vector2 &p_zoom ) {
77
+ void Camera2D::set_zoom_scale (const Vector2 &p_scale ) {
78
78
// Setting zoom to zero causes 'affine_invert' issues
79
- ERR_FAIL_COND_MSG (Math::is_zero_approx (p_zoom.x ) || Math::is_zero_approx (p_zoom.y ), " Zoom level must be different from 0 (can be negative)." );
79
+ // ERR_FAIL_COND_MSG(Math::is_zero_approx(p_zoom.x) || Math::is_zero_approx(p_zoom.y), "Zoom level must be different from 0 (can be negative).");
80
+ if (zoom_scale == p_scale) {
81
+ return ;
82
+ }
80
83
81
- zoom = p_zoom;
82
- zoom_scale = Vector2 (1 , 1 ) / zoom;
84
+ zoom_scale = p_scale;
83
85
Point2 old_smoothed_camera_pos = smoothed_camera_pos;
84
86
_update_scroll ();
85
87
smoothed_camera_pos = old_smoothed_camera_pos;
86
88
};
87
89
88
- Vector2 Camera2D::get_zoom () const {
89
- return zoom ;
90
+ Vector2 Camera2D::get_zoom_scale () const {
91
+ return zoom_scale ;
90
92
};
91
93
92
94
Transform2D Camera2D::get_camera_transform () {
@@ -704,8 +706,8 @@ void Camera2D::_bind_methods() {
704
706
ClassDB::bind_method (D_METHOD (" get_target_position" ), &Camera2D::get_camera_position);
705
707
ClassDB::bind_method (D_METHOD (" get_screen_center_position" ), &Camera2D::get_camera_screen_center);
706
708
707
- ClassDB::bind_method (D_METHOD (" set_zoom " , " zoom " ), &Camera2D::set_zoom );
708
- ClassDB::bind_method (D_METHOD (" get_zoom " ), &Camera2D::get_zoom );
709
+ ClassDB::bind_method (D_METHOD (" set_zoom_scale " , " zoom_scale " ), &Camera2D::set_zoom_scale );
710
+ ClassDB::bind_method (D_METHOD (" get_zoom_scale " ), &Camera2D::get_zoom_scale );
709
711
710
712
ClassDB::bind_method (D_METHOD (" set_custom_viewport" , " viewport" ), &Camera2D::set_custom_viewport);
711
713
ClassDB::bind_method (D_METHOD (" get_custom_viewport" ), &Camera2D::get_custom_viewport);
@@ -735,7 +737,7 @@ void Camera2D::_bind_methods() {
735
737
ADD_PROPERTY (PropertyInfo (Variant::INT, " anchor_mode" , PROPERTY_HINT_ENUM, " Fixed TopLeft,Drag Center" ), " set_anchor_mode" , " get_anchor_mode" );
736
738
ADD_PROPERTY (PropertyInfo (Variant::BOOL, " ignore_rotation" ), " set_ignore_rotation" , " is_ignoring_rotation" );
737
739
ADD_PROPERTY (PropertyInfo (Variant::BOOL, " current" ), " set_current" , " is_current" );
738
- ADD_PROPERTY (PropertyInfo (Variant::VECTOR2, " zoom " , PROPERTY_HINT_LINK), " set_zoom " , " get_zoom " );
740
+ ADD_PROPERTY (PropertyInfo (Variant::VECTOR2, " zoom_scale " , PROPERTY_HINT_LINK), " set_zoom_scale " , " get_zoom_scale " );
739
741
ADD_PROPERTY (PropertyInfo (Variant::OBJECT, " custom_viewport" , PROPERTY_HINT_RESOURCE_TYPE, " Viewport" , PROPERTY_USAGE_NONE), " set_custom_viewport" , " get_custom_viewport" );
740
742
ADD_PROPERTY (PropertyInfo (Variant::INT, " process_callback" , PROPERTY_HINT_ENUM, " Physics,Idle" ), " set_process_callback" , " get_process_callback" );
741
743
0 commit comments