Beispiel #1
0
        public void Moving()
        {
            if (directions?.Count != 0 && currentTurnAwait == Direction.Empty)
            {
                currentTurnAwait = directions.Dequeue();
                currentTurn      = Turns.Dequeue();
            }

            if (currentTurnAwait != Direction.Empty)
            {
                if (currentTurn.X == Position.X && currentTurn.Y == Position.Y)
                {
                    Direction        = currentTurnAwait;
                    currentTurnAwait = Direction.Empty;
                }
            }

            switch (Direction)
            {
            case Direction.Right:
            {
                if (Position.X >= window.ClientBounds.Width - Size.X)
                {
                    Position = new Point(Position.X - window.ClientBounds.Width, Position.Y);
                }
                Position = new Point(Position.X + speed, Position.Y);
            }
            break;

            case Direction.Left:
            {
                if (Position.X <= 0)
                {
                    Position = new Point(window.ClientBounds.Width, Position.Y);
                }
                Position = new Point(Position.X - speed, Position.Y);
            }
            break;

            case Direction.Top:
            {
                if (Position.Y <= 0)
                {
                    Position = new Point(Position.X, window.ClientBounds.Height);
                }
                Position = new Point(Position.X, Position.Y - speed);
            }
            break;

            case Direction.Bottom:
            {
                if (Position.Y >= window.ClientBounds.Height - Size.Y)
                {
                    Position = new Point(Position.X, Position.Y - window.ClientBounds.Height);
                }
                Position = new Point(Position.X, Position.Y + speed);
            };
                break;
            }
        }