public MyPosition MoveTowards(MyPosition pos, double speed) { var dist = Dist(pos); if (dist < 0.1) { return(pos); } var dx = (pos.X - X) / dist * speed; var dy = (pos.Y - Y) / dist * speed; return(new MyPosition(X + dx, Y + dy)); }
public void UpdateFrom(MyPosition p) { X = p.X; Y = p.Y; }
public double Dist(MyPosition p2) => Math.Sqrt(Pow(X - p2.X) + Pow(Y - p2.Y));
public double XDist(MyPosition p2) => Math.Abs(X - p2.X);
public int GetDx(MyPosition p2) => p2.X > X ? 1 : ((int)p2.X == (int)X)?0:-1;