1

我正在使用 Microsoft Visual Studio 2012 在 Windows Phone 8 的 Windows Phone 应用程序上进行碰撞。我使用 Rect 为球制作了一个矩形边框。我收到了这个错误。“System.Windows.Rect”不包含“Intersects”的定义,并且找不到接受“System.Windows.Rect”类型的第一个参数的扩展方法“Intersects”(您是否缺少 using 指令或程序集引用?) 代码如下。

var greenBallPositionX1 = Canvas.GetLeft(this.greenBall1);
var greenBallPositionY1 = Canvas.GetTop(this.greenBall1);

Rect r1 = new Rect(greenBallPositionX1, greenBallPositionY1, greenBall1.ActualWidth, greenBall1.ActualHeight);

var blueBallPositionX1 = Canvas.GetLeft(this.blueBall1);
var blueBallPositionY1 = Canvas.GetTop(this.blueBall1);

Rect r2 = new Rect(blueBallPositionX1, blueBallPositionY1, blueBall1.ActualWidth, blueBall1.ActualHeight);

if (r1.Intersects(r2))
        {
            MessageBox.Show("Collision Detected");
        }
4

2 回答 2

2

你自己的相交可以写成

public bool Intersects(Rect r1,Rect r2)
{
  r1.Intersect(r2);

  if(r1.IsEmpty)
  {
    return false;
  }
  else 
  {
    return true;
  }
}

那么你可以使用

if(Intersects(r1,r2))
{
  MessageBox.Show("Collison Detected");
}
于 2013-07-03T09:12:53.453 回答
0

语法是:

Rect.Intersect(Rect)

丢掉“s”!

http://msdn.microsoft.com/en-us/library/ms558125.aspx

于 2013-07-03T09:01:26.923 回答