Пример #1
0
        public void OnMoveButtonReleased(EMoveDirection dir)
        {
            switch (dir)
            {
            case EMoveDirection.Up:
                buttons[0] = 0;
                break;

            case EMoveDirection.Down:
                buttons[1] = 0;
                break;

            case EMoveDirection.Left:
                buttons[2] = 0;
                break;

            case EMoveDirection.Right:
                buttons[3] = 0;
                break;

            default:
                Debug.Log("Error: Undefined input for moving.");
                break;
            }

            for (int i = 0; i < 4; i++)
            {
                if (buttons[i] > btnCount)
                {
                    buttons[i] -= 1;
                }
            }
            btnCount -= 1;
        }
Пример #2
0
        public void SetDirection(EMoveDirection direction)
        {
            switch (_direction)
            {
            case EMoveDirection.Up:
                if (direction != EMoveDirection.Down)
                {
                    _direction = direction;
                }
                break;

            case EMoveDirection.Down:
                if (direction != EMoveDirection.Up)
                {
                    _direction = direction;
                }
                break;

            case EMoveDirection.Left:
                if (direction != EMoveDirection.Right)
                {
                    _direction = direction;
                }
                break;

            case EMoveDirection.Right:
                if (direction != EMoveDirection.Left)
                {
                    _direction = direction;
                }
                break;
            }
        }
Пример #3
0
        public void OnMoveButtonPushed(EMoveDirection dir)
        {
            btnCount += 1;
            switch (dir)
            {
            case EMoveDirection.Up:
                buttons[0] = btnCount;
                break;

            case EMoveDirection.Down:
                buttons[1] = btnCount;
                break;

            case EMoveDirection.Left:
                buttons[2] = btnCount;
                break;

            case EMoveDirection.Right:
                buttons[3] = btnCount;
                break;

            default:
                Debug.Log("Error: Undefined input for moving.");
                break;
            }
        }
Пример #4
0
        private void Update()
        {
            if (!Input.GetMouseButton(0))
            {
                CurrentDirection = EMoveDirection.Stop;
                return;
            }

            float touchRatio = Vector2.Distance(transform.position, Input.mousePosition) / radius;

            if (touchRatio < minTouchRatio || touchRatio > maxTouchRatio)
            {
                return;
            }

            float angle = GlobalFunctions.GetAngle(Input.mousePosition, transform.position);

            if (angle >= -135f && angle < -45f)
            {
                CurrentDirection = EMoveDirection.Down;
            }
            else if (angle >= -45f && angle < 45f)
            {
                CurrentDirection = EMoveDirection.Right;
            }
            else if (angle >= 45f && angle < 135f)
            {
                CurrentDirection = EMoveDirection.Up;
            }
            else if (angle >= 135f || angle < -135f)
            {
                CurrentDirection = EMoveDirection.Left;
            }
        }
Пример #5
0
        public Snake(Point point, string objSymbol, ConsoleColor objColor, EMoveDirection initDirection = EMoveDirection.Right)
            : base(point, objSymbol, objColor)
        {
            _direction = initDirection;
            _tail      = new List <Point>();

            _tail.Add(new Point(Position.X - 4, Position.Y));
            _tail.Add(new Point(Position.X - 3, Position.Y));
            _tail.Add(new Point(Position.X - 2, Position.Y));
            _tail.Add(new Point(Position.X - 1, Position.Y));
        }
Пример #6
0
        public void Move(EMoveDirection direction)
        {
            InitializeIfNeeded();
            var newStep = _currentPosition;

            switch (direction)
            {
            case EMoveDirection.Down:
            {
                newStep.y--;
                break;
            }

            case EMoveDirection.Up:
            {
                newStep.y++;
                break;
            }

            case EMoveDirection.Left:
            {
                newStep.x--;
                break;
            }

            case EMoveDirection.Right:
            {
                newStep.x++;
                break;
            }
            }
            var node = _mapCreationBehaviour.GetNode(newStep);

            if (node != null)
            {
                node.interaction.PerformInteraction(new Vector3(newStep.x, 0f, newStep.y));
                if (!node.isObstacle)
                {
                    _currentPosition = newStep;
                    MoveRepresetnation();
                }
            }
        }
Пример #7
0
        public static Vector2 VectorForDirection(EMoveDirection direction)
        {
            switch (direction)
            {
            case EMoveDirection.Down:
                return(Vector2.down);

            case EMoveDirection.Right:
                return(Vector2.right);

            case EMoveDirection.Up:
                return(Vector2.up);

            case EMoveDirection.Left:
                return(Vector2.left);

            default:
                return(new Vector2());
            }
        }
Пример #8
0
        void Update()
        {
            float vertical   = Input.GetAxis("Vertical");
            float horizontal = Input.GetAxis("Horizontal");

            if (PlayerController.LocalPlayer != null)
            {
                Debug.Log(vertical);
                Debug.Log(horizontal);

                EMoveDirection direction = EMoveDirection.Stop;
                if (horizontal > 0)
                {
                    direction = EMoveDirection.Right;
                }
                else if (horizontal < 0)
                {
                    direction = EMoveDirection.Left;
                }
                else if (vertical > 0)
                {
                    direction = EMoveDirection.Up;
                }
                else if (vertical < 0)
                {
                    direction = EMoveDirection.Down;
                }

                if (direction != EMoveDirection.Stop)
                {
                    Debug.Log("Button pushed stage 1: " + direction);
                    PlayerController.LocalPlayer.OnMoveButtonPushed(direction);
                    PlayerController.LocalPlayer.OnMoveButtonReleased(direction);
                }
            }
        }
Пример #9
0
 public MoveCommand(EMoveDirection direction)
 {
     _direction = direction;
 }
        private bool BuildCycleRecursively(Tuple<int, int> startPoint, EMoveDirection moveDirection)
        {
            if (startPoint != _positiveEstimationPoint && IsMoveDirectionCorrect(moveDirection, startPoint, _positiveEstimationPoint))
            {
                return true;
            }

            for (int i = 0; i < _basePlan.Count; i++)
            {
                if (!_basePlanUsingFlags[i])
                {
                    var nextPoint = _basePlan[i];
                    if (IsMoveDirectionCorrect(moveDirection, startPoint, nextPoint))
                    {
                        _basePlanUsingFlags[i] = true;
                        _cyclePointsOrdered.Push(nextPoint);
                        if (BuildCycleRecursively(nextPoint, InverseMoveDirection(moveDirection)))
                        {
                            return true;
                        }
                        _basePlanUsingFlags[i] = false;
                        _cyclePointsOrdered.Pop();
                    }
                }
            }

            return false;
        }
 private bool IsMoveDirectionCorrect(EMoveDirection direction, Tuple<int, int> startPoint, Tuple<int, int> nextPoint)
 {
     return direction == EMoveDirection.Horizontal
            	? startPoint.Item1 == nextPoint.Item1
            	: startPoint.Item2 == nextPoint.Item2;
 }
 private EMoveDirection InverseMoveDirection(EMoveDirection direction)
 {
     return direction == EMoveDirection.Horizontal
            	? EMoveDirection.Vertical
            	: EMoveDirection.Horizontal;
 }
Пример #13
0
 public void ChangeMoveDirection(EMoveDirection direction)
 {
     curDirection = direction;
 }
Пример #14
0
 private MoveCommand(EMoveDirection p_direction) : base(ECommandTypes.MOVE)
 {
     m_direction = p_direction;
 }