Browse Source

Fixed width of CapsuleShape2D::get_rect + set center to center of shape

The width of the rect was only half of the width of the shape, and
the 0;0 coord was at the top left of the rect.
Now the width properly matches the width of the shape, and the 0;0
coord is at the center of the shape. It should match the behavior
of Godot 3.X.

(cherry picked from commit ab5462e386b2b353adb6533bdb7a17d020598be8)
FranckRJ 2 năm trước cách đây
mục cha
commit
ac1885925c
1 tập tin đã thay đổi với 2 bổ sung1 xóa
  1. 2 1
      scene/resources/capsule_shape_2d.cpp

+ 2 - 1
scene/resources/capsule_shape_2d.cpp

@@ -97,7 +97,8 @@ void CapsuleShape2D::draw(const RID &p_to_rid, const Color &p_color) {
 }
 
 Rect2 CapsuleShape2D::get_rect() const {
-	return Rect2(0, 0, radius, height);
+	const Vector2 half_size = Vector2(radius, height * 0.5);
+	return Rect2(-half_size, half_size * 2.0);
 }
 
 real_t CapsuleShape2D::get_enclosing_radius() const {