我有一个问题:如果标签从左到右带有计时器,一段时间后会遇到一个矩形。我怎样才能得到它们之间的碰撞?
这是矩形:
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]));
一些想法?
答案 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引用,然后通过该变量在两个位置引用它。