Exemple #1
0
        /// <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);
        }