Ejemplo n.º 1
0
    public bool CheckIfMovementIsOutOfBounds(Vector2 movementVelocity, CameraViewPortInfo viewportInfo)
    {
        float newXPosition = transform.position.x + (movementVelocity.x * Time.deltaTime);

        if (newXPosition < viewportInfo.viewportWorldMin.x)
        {
            return(true);
        }
        else if (newXPosition > viewportInfo.viewportWorldMax.x)
        {
            return(true);
        }

        return(false);
    }
Ejemplo n.º 2
0
    public bool CheckIfMovementIsOverlapping(Vector2 movementVelocity, EntityMovementAttributes movementAttributes, CameraViewPortInfo viewPortInfo, int rootIndex, List <EntityMovement> roots) //Garbage code just to test my theory
    {
        float newXPosition = transform.position.x + (movementVelocity.x * Time.deltaTime);

        float targetXMin = 0f;
        float targetXMax = 0f;

        float offsetValue = movementAttributes.collisionOffset;

        if (roots.Count == 1)
        {
            targetXMin = viewPortInfo.viewportWorldMin.x;
            targetXMax = viewPortInfo.viewportWorldMax.x;

            if (newXPosition < targetXMin || newXPosition > targetXMax)
            {
                return(true);
            }
        }
        else if (roots.Count == 2)
        {
            if (rootIndex == 0)
            {
                targetXMin = viewPortInfo.viewportWorldMin.x;
                targetXMax = roots[1].isActive ? roots[1].transform.position.x - offsetValue : viewPortInfo.viewportWorldMax.x;

                if (newXPosition < targetXMin || newXPosition > targetXMax)
                {
                    return(true);
                }
            }
            else
            {
                targetXMin = roots[0].isActive ? roots[0].transform.position.x + offsetValue : viewPortInfo.viewportWorldMin.x;
                targetXMax = viewPortInfo.viewportWorldMax.x;

                if (newXPosition < targetXMin || newXPosition > targetXMax)
                {
                    return(true);
                }
            }
        }
        else if (roots.Count == 3)
        {
            if (rootIndex == 0)
            {
                targetXMin = viewPortInfo.viewportWorldMin.x;

                if (roots[1].isActive)
                {
                    targetXMax = roots[1].transform.position.x - offsetValue;
                }
                else if (roots[2].isActive)
                {
                    targetXMax = roots[2].transform.position.x - offsetValue;
                }
                else
                {
                    targetXMax = viewPortInfo.viewportWorldMax.x;
                }

                if (newXPosition < targetXMin || newXPosition > targetXMax)
                {
                    return(true);
                }
            }
            else if (rootIndex == 1)
            {
                targetXMin = roots[0].isActive ? roots[0].transform.position.x + offsetValue : viewPortInfo.viewportWorldMin.x;

                targetXMax = roots[2].isActive ? roots[2].transform.position.x - offsetValue : viewPortInfo.viewportWorldMax.x;

                if (newXPosition < targetXMin || newXPosition > targetXMax)
                {
                    return(true);
                }
            }
            else
            {
                if (roots[1].isActive)
                {
                    targetXMin = roots[1].transform.position.x + offsetValue;
                }
                else if (roots[0].isActive)
                {
                    targetXMin = roots[0].transform.position.x + offsetValue;
                }
                else
                {
                    targetXMin = viewPortInfo.viewportWorldMin.x;
                }

                targetXMax = viewPortInfo.viewportWorldMax.x;

                if (newXPosition < targetXMin || newXPosition > targetXMax)
                {
                    return(true);
                }
            }
        }

        return(false);
    }
Ejemplo n.º 3
0
    public Vector2 ReturnMovementVector(Vector2 inputVector, bool isControlled, EntityMovementAttributes movementAttributes, CameraViewPortInfo viewPortInfo, int rootIndex, List <EntityMovement> activeRoots, List <EntityMovement> aliveRoots)
    {
        if (inputVector.magnitude > 1)
        {
            inputVector.Normalize();
        }

        Vector2 newMovementVector = movementAttributes.ReturnOngoingSpeed(aliveRoots.Count);

        if (isControlled)
        {
            newMovementVector = inputVector * movementAttributes.movementSpeed + movementAttributes.ReturnOngoingSpeed(aliveRoots.Count);
        }

        if (CheckIfMovementIsOutOfBounds(newMovementVector, viewPortInfo))
        {
            newMovementVector.x = 0;
        }

        if (CheckIfMovementIsOverlapping(newMovementVector, movementAttributes, viewPortInfo, rootIndex, activeRoots))
        {
            newMovementVector.x = 0;
        }

        return(newMovementVector);
    }
Ejemplo n.º 4
0
    public void Move(InputInfo input, bool isControlled, EntityMovementAttributes movementAttributes, CameraViewPortInfo viewPortInfo, int rootIndex, List <EntityMovement> activeRoots, List <EntityMovement> aliveRoots)
    {
        if (isActive)
        {
            Vector2 newMovement = ReturnMovementVector(ReturnInputMovementVector(input), isControlled, movementAttributes, viewPortInfo, rootIndex, activeRoots, aliveRoots);

            transform.Translate(newMovement * Time.deltaTime);

            Rotate(newMovement * Time.deltaTime);

            lastDirection = newMovement;
        }
    }
Ejemplo n.º 5
0
 private void ManageCamera()
 {
     viewPortInfo = entityCamera.ReturnViewportInfo();
 }
Ejemplo n.º 6
0
    public override void InitializeCamera()
    {
        viewPortInfo = new CameraViewPortInfo(Camera.main, viewportOffset);

        base.InitializeCamera();
    }