/// <summary> /// <paramref name="direction"/>方向に<paramref name="steps"/>移動します /// </summary> /// <param name="direction"></param> /// <returns></returns> public Point Move(Direction direction, int steps = 1) { Point point = new Point(X, Y); foreach (Direction d in Enum.GetValues(typeof(Direction)).Cast <Direction>()) { if (direction.HasFlag(d)) { switch (d) { case Direction.Left: point = point.AddX(-steps); break; case Direction.Up: point = point.AddY(-steps); break; case Direction.Right: point = point.AddX(steps); break; case Direction.Down: point = point.AddY(steps); break; } } } return(point); }