为你获得了另一个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;
但它似乎没有用。有人可以帮忙吗?
答案 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.
}
希望有所帮助!