检查标签和矩形之间的碰撞?

时间:2014-02-28 20:10:00

标签: c# label collision

我有一个问题:如果标签从左到右带有计时器,一段时间后会遇到一个矩形。我怎样才能得到它们之间的碰撞?

这是矩形:

e.Graphics.FillRectangle(Brushes.LightCyan, new Rectangle(Pipe1[0], 0, PipeWidth, Pipe1[1]));
e.Graphics.FillRectangle(Brushes.LightCyan, new Rectangle(Pipe1[2], Pipe1[3], PipeWidth, this.Height - Pipe1[3]));

一些想法?

2 个答案:

答案 0 :(得分:3)

将2个矩形存储在局部变量中,然后使用Rectangle.IntersectsWith()检查它们是否重叠。

有关详细信息,请参阅this MSDN page

答案 1 :(得分:1)

Label myLabel = new Label();

myLabel.Text = "BOB";
Rectangle rec = myLabel.Bounds;
Rectangle rec2 = new Rectangle(30, 10, 20, 40);
Rectangle intersect = Rectangle.Intersect(rec, rec2);
if (intersect != Rectangle.Empty)
{
   MessageBox.Show("Intersection!");
}

您将上面构建的矩形替换为“rec2”。显然,您需要构建它并将其分配给Rectangle引用,然后通过该变量在两个位置引用它。