瀏覽代碼

Area2d rectangle collision check doesn't ignore the first pixel row and column (fix #25462)

PouleyKetchoupp 6 年之前
父節點
當前提交
edcfe41bd5
共有 1 個文件被更改,包括 5 次插入2 次删除
  1. 5 2
      servers/physics_2d/shape_2d_sw.cpp

+ 5 - 2
servers/physics_2d/shape_2d_sw.cpp

@@ -369,8 +369,11 @@ void RectangleShape2DSW::get_supports(const Vector2 &p_normal, Vector2 *r_suppor
 }
 
 bool RectangleShape2DSW::contains_point(const Vector2 &p_point) const {
-
-	return Math::abs(p_point.x) < half_extents.x && Math::abs(p_point.y) < half_extents.y;
+	float x = p_point.x;
+	float y = p_point.y;
+	float edge_x = half_extents.x;
+	float edge_y = half_extents.y;
+	return (x >= -edge_x) && (x < edge_x) && (y >= -edge_y) && (y < edge_y);
 }
 
 bool RectangleShape2DSW::intersect_segment(const Vector2 &p_begin, const Vector2 &p_end, Vector2 &r_point, Vector2 &r_normal) const {