Update(timeSpan, false, false, false, false);\r
}\r
\r
+ /// <summary>\r
+ /// Update the movement manager with the timeslice and a direction.\r
+ /// </summary>\r
+ /// <param name="timeSpan">The timeslice.</param>\r
+ /// <param name="direction">Direction you want to move.</param>\r
+ public void Update(TimeSpan timeSpan, Direction direction)\r
+ {\r
+ if (direction == Direction.Left) Update(timeSpan, true, false, false, false);\r
+ else if (direction == Direction.UpperLeft) Update(timeSpan, true, false, true, false);\r
+ else if (direction == Direction.Up) Update(timeSpan, false, false, true, false);\r
+ else if (direction == Direction.UpperRight) Update(timeSpan, false, true, true, false);\r
+ else if (direction == Direction.Right) Update(timeSpan, false, true, false, false);\r
+ else if (direction == Direction.LowerRight) Update(timeSpan, false, true, false, true);\r
+ else if (direction == Direction.Down) Update(timeSpan, false, false, false, true);\r
+ else if (direction == Direction.LowerLeft) Update(timeSpan, true, false, false, true);\r
+ else Update(timeSpan);\r
+ }\r
+\r
/// <summary>\r
/// Update the movement manager with the timeslice and the directions\r
/// the object is supposed to go. The directions will be ignored if the\r
else return Direction.None;\r
}\r
\r
+ /// <summary>\r
+ /// Helper method to get the general Direction type if you want to move\r
+ /// from one cell to another.\r
+ /// <param name="a">Starting point.</param>\r
+ /// <param name="b">Destination point.</param>\r
+ /// <returns>The direction toward the cell.</returns>\r
+ public static Direction GetDirection(Point a, Point b)\r
+ {\r
+ int dx = b.X - a.X;\r
+ int dy = b.Y - a.Y;\r
+\r
+ if (dx < 0)\r
+ {\r
+ if (dy < 0) return Direction.UpperLeft;\r
+ else if (dy > 0) return Direction.LowerLeft;\r
+ else return Direction.Left;\r
+ }\r
+ else if (dx > 0)\r
+ {\r
+ if (dy < 0) return Direction.UpperRight;\r
+ else if (dy > 0) return Direction.LowerRight;\r
+ else return Direction.Right;\r
+ }\r
+ else if (dy < 0) return Direction.Up;\r
+ else if (dy > 0) return Direction.Down;\r
+ else return Direction.None;\r
+ }\r
+\r
#endregion\r
\r
\r