Ejemplo n.º 1
0
    public void manageTouches_canMove(bool[,] boolArray, DoorHitboxManager doorHitboxManager)
    {
        if (touchReader_keyboard.getHasMouseOrKeyInput())
        {
            touchReturnPacket = touchReader_keyboard.getThumbstickData(normalStickPositions, shootingMode);
        }
        else
        {
            touchReturnPacket = touchReader.getThumbstickData();
        }

        uiManager.setThumbsticks(touchReturnPacket);

        stickAngles_raw     = touchReturnPacket.getStickAngles();
        stickMagnitudes_raw = uiManager.getRealStickMagnitude();
        hasTouches_raw      = touchReturnPacket.getHasTouch();

        setStickData();
        // checkForDoubleTap_movement();

        moveShip_target(stickAngle_movement, stickMagnitude_movement, boolArray, doorHitboxManager);

        checkCannonStick();
        cannonFiringManager.checkCannonReload(playerBoatTransform_delayed.position);

        hasTouchPrevious_movement = hasTouch_movement;
        // hasTouchPrevious_cannon = hasTouch_cannon;
    }
    public void setThumbsticks(TouchReturnPacket touchPacket)
    {
        Vector2 screenPoint;
        Vector2 newPlacement;

        // First the left thumbstick:
        if (touchPacket.getHasTouch()[0])
        {
            if (!thumbstickWasActive[0])
            {
                thumbstickWasActive[0] = true;
                stickBase_left.SetActive(true);
                stickKnob_left.SetActive(true);

                screenPoint = new Vector2(touchPacket.getStickCenterX()[0], touchPacket.getStickCenterY()[0]);
                RectTransformUtility.ScreenPointToLocalPointInRectangle(canvasRect, screenPoint, null, out newPlacement);
                stickBase_left_transform.anchoredPosition = newPlacement;
            }

            screenPoint = new Vector2(touchPacket.getTouchX()[0], touchPacket.getTouchY()[0]);
            RectTransformUtility.ScreenPointToLocalPointInRectangle(canvasRect, screenPoint, null, out newPlacement);

            newPlacement -= stickBase_left_transform.anchoredPosition;
            if (newPlacement.magnitude > stickMaxMag)
            {
                newPlacement = newPlacement.normalized * stickMaxMag;
            }

            realStickMag[0] = newPlacement.magnitude / stickMaxMag;

            newPlacement += stickBase_left_transform.anchoredPosition;

            stickKnob_left_transform.anchoredPosition = newPlacement;
        }
        else
        {
            if (thumbstickWasActive[0])
            {
                thumbstickWasActive[0] = false;
                stickBase_left.SetActive(false);
                stickKnob_left.SetActive(false);
                realStickMag[0] = 0f;
            }
        }


        // Then the right thumbstick:
        if (touchPacket.getHasTouch()[1])
        {
            if (!thumbstickWasActive[1])
            {
                thumbstickWasActive[1] = true;
                stickBase_right.SetActive(true);
                stickKnob_right.SetActive(true);

                screenPoint = new Vector2(touchPacket.getStickCenterX()[1], touchPacket.getStickCenterY()[1]);
                RectTransformUtility.ScreenPointToLocalPointInRectangle(canvasRect, screenPoint, null, out newPlacement);
                stickBase_right_transform.anchoredPosition = newPlacement;
            }

            screenPoint = new Vector2(touchPacket.getTouchX()[1], touchPacket.getTouchY()[1]);
            RectTransformUtility.ScreenPointToLocalPointInRectangle(canvasRect, screenPoint, null, out newPlacement);

            newPlacement -= stickBase_right_transform.anchoredPosition;
            if (newPlacement.magnitude > stickMaxMag)
            {
                newPlacement = newPlacement.normalized * stickMaxMag;
            }

            realStickMag[1] = newPlacement.magnitude / stickMaxMag;

            newPlacement += stickBase_right_transform.anchoredPosition;

            stickKnob_right_transform.anchoredPosition = newPlacement;
        }
        else
        {
            if (thumbstickWasActive[1])
            {
                thumbstickWasActive[1] = false;
                stickBase_right.SetActive(false);
                stickKnob_right.SetActive(false);
                realStickMag[1] = 0f;
            }
        }
    }