XNA - Approching两个对象

时间:2014-03-15 19:33:03

标签: c# xna

为你获得了另一个Q.我得到了2个具有已知x和y坐标的物体,我希望第二个物体接近第一个物体,直到它距离300 px。我该怎么做。

我试过了:

double a = this.Position.Y - p.Position.Y;
        double b = p.Position.X - this.Position.X;
        double c = Math.Sqrt(Math.Pow(a, 2) + Math.Pow(b, 2));
        float rotation = (float)Math.Atan(a / b);
        this.Rotation = rotation;
        if (c < 300) return;
        Position += new Vector2(-(float)Math.Cos(Rotation), -(float)Math.Sin(Rotation)) * Speed;

但它似乎没有用。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

对于距离比较:

bool inRange = (Vector2.Distance(this, p) <= 300);

这可以替换代码的前3行。 现在就做这样的事情:

if (inRange)
{
    // Move closer.
}
else
{
    // Flank, begin following, spontaneously combust, slap lightly and repeatedly you name it.
}

希望有所帮助!