Example #1
0
    /// <summary>
    /// Return a vector with de orientation to move in the diagonal requiered indepent of the orientation of the level
    /// </summary>
    /// <param name="newDirection"></param>
    /// <returns></returns>
    Vector3 GetRampVectorDirector(Directions newDirection)
    {
        CameraMovement.Axes lateral = CameraMovement.Lateral;
        CameraMovement.Axes dLeft   = CameraMovement.DiagonalLeft;
        CameraMovement.Axes dRight  = CameraMovement.DiagonalRight;

        Vector3 newDirector = new Vector3(0, 0, 0);
        int     xAdded      = 0;
        int     yAdded      = 0;
        int     zAdded      = 0;


        switch (newDirection)
        {
        case Directions.leftUp:
            if (dRight == CameraMovement.Axes.xPos)
            {
                newDirector = new Vector3(1, 0, 0);
            }
            else if (dRight == CameraMovement.Axes.yPos)
            {
                newDirector = new Vector3(0, 1, 0);
            }
            else if (dRight == CameraMovement.Axes.zPos)
            {
                newDirector = new Vector3(0, 0, 1);
            }
            else if (dRight == CameraMovement.Axes.xNeg)
            {
                newDirector = new Vector3(-1, 0, 0);
            }
            else if (dRight == CameraMovement.Axes.yNeg)
            {
                newDirector = new Vector3(0, -1, 0);
            }
            else if (dRight == CameraMovement.Axes.zNeg)
            {
                newDirector = new Vector3(0, 0, -1);
            }
            break;

        case Directions.leftDown:
            if (dRight == CameraMovement.Axes.xPos)
            {
                newDirector = new Vector3(-1, 0, 0);
            }
            else if (dRight == CameraMovement.Axes.yPos)
            {
                newDirector = new Vector3(0, -1, 0);
            }
            else if (dRight == CameraMovement.Axes.zPos)
            {
                newDirector = new Vector3(0, 0, -1);
            }
            else if (dRight == CameraMovement.Axes.xNeg)
            {
                newDirector = new Vector3(1, 0, 0);
            }
            else if (dRight == CameraMovement.Axes.yNeg)
            {
                newDirector = new Vector3(0, 1, 0);
            }
            else if (dRight == CameraMovement.Axes.zNeg)
            {
                newDirector = new Vector3(0, 0, 1);
            }
            break;

        case Directions.rightUp:
            if (dLeft == CameraMovement.Axes.xPos)
            {
                newDirector = new Vector3(1, 0, 0);
            }
            else if (dLeft == CameraMovement.Axes.yPos)
            {
                newDirector = new Vector3(0, 1, 0);
            }
            else if (dLeft == CameraMovement.Axes.zPos)
            {
                newDirector = new Vector3(0, 0, 1);
            }
            else if (dLeft == CameraMovement.Axes.xNeg)
            {
                newDirector = new Vector3(-1, 0, 0);
            }
            else if (dLeft == CameraMovement.Axes.yNeg)
            {
                newDirector = new Vector3(0, -1, 0);
            }
            else if (dLeft == CameraMovement.Axes.zNeg)
            {
                newDirector = new Vector3(0, 0, -1);
            }
            break;

        case Directions.rightDown:
            if (dLeft == CameraMovement.Axes.xPos)
            {
                newDirector = new Vector3(-1, 0, 0);
            }
            else if (dLeft == CameraMovement.Axes.yPos)
            {
                newDirector = new Vector3(0, -1, 0);
            }
            else if (dLeft == CameraMovement.Axes.zPos)
            {
                newDirector = new Vector3(0, 0, -1);
            }
            else if (dLeft == CameraMovement.Axes.xNeg)
            {
                newDirector = new Vector3(1, 0, 0);
            }
            else if (dLeft == CameraMovement.Axes.yNeg)
            {
                newDirector = new Vector3(0, 1, 0);
            }
            else if (dLeft == CameraMovement.Axes.zNeg)
            {
                newDirector = new Vector3(0, 0, 1);
            }
            break;
        }

        switch (lateral)
        {
        case CameraMovement.Axes.xPos: xAdded = 1; break;

        case CameraMovement.Axes.xNeg: xAdded = -1; break;

        case CameraMovement.Axes.yPos: yAdded = 1; break;

        case CameraMovement.Axes.yNeg: yAdded = -1; break;

        case CameraMovement.Axes.zPos: zAdded = 1; break;

        case CameraMovement.Axes.zNeg: zAdded = -1; break;
        }

        newDirector = new Vector3(newDirector.x + xAdded, newDirector.y + yAdded, newDirector.z + zAdded);
        return(newDirector);
    }
Example #2
0
    /// <summary>
    /// Return a vector with de orientation to move in the diagonal requiered indepent of the orientation of the level
    /// </summary>
    /// <param name="newDirection"></param>
    /// <returns></returns>
    Vector3 GetVectorDirector(Directions newDirection)
    {
        CameraMovement.Axes lateral = CameraMovement.Lateral;
        CameraMovement.Axes dLeft   = CameraMovement.DiagonalLeft;
        CameraMovement.Axes dRight  = CameraMovement.DiagonalRight;

        Vector3 newDirector = new Vector3(0, 0, 0);

        switch (newDirection)
        {
        case Directions.leftUp:
            if (dRight == CameraMovement.Axes.xPos)
            {
                newDirector = new Vector3(1, 0, 0);
            }
            else if (dRight == CameraMovement.Axes.yPos)
            {
                newDirector = new Vector3(0, 1, 0);
            }
            else if (dRight == CameraMovement.Axes.zPos)
            {
                newDirector = new Vector3(0, 0, 1);
            }
            else if (dRight == CameraMovement.Axes.xNeg)
            {
                newDirector = new Vector3(-1, 0, 0);
            }
            else if (dRight == CameraMovement.Axes.yNeg)
            {
                newDirector = new Vector3(0, -1, 0);
            }
            else if (dRight == CameraMovement.Axes.zNeg)
            {
                newDirector = new Vector3(0, 0, -1);
            }
            break;

        case Directions.leftDown:
            if (dRight == CameraMovement.Axes.xPos)
            {
                newDirector = new Vector3(-1, 0, 0);
            }
            else if (dRight == CameraMovement.Axes.yPos)
            {
                newDirector = new Vector3(0, -1, 0);
            }
            else if (dRight == CameraMovement.Axes.zPos)
            {
                newDirector = new Vector3(0, 0, -1);
            }
            else if (dRight == CameraMovement.Axes.xNeg)
            {
                newDirector = new Vector3(1, 0, 0);
            }
            else if (dRight == CameraMovement.Axes.yNeg)
            {
                newDirector = new Vector3(0, 1, 0);
            }
            else if (dRight == CameraMovement.Axes.zNeg)
            {
                newDirector = new Vector3(0, 0, 1);
            }
            break;

        case Directions.rightUp:
            if (dLeft == CameraMovement.Axes.xPos)
            {
                newDirector = new Vector3(1, 0, 0);
            }
            else if (dLeft == CameraMovement.Axes.yPos)
            {
                newDirector = new Vector3(0, 1, 0);
            }
            else if (dLeft == CameraMovement.Axes.zPos)
            {
                newDirector = new Vector3(0, 0, 1);
            }
            else if (dLeft == CameraMovement.Axes.xNeg)
            {
                newDirector = new Vector3(-1, 0, 0);
            }
            else if (dLeft == CameraMovement.Axes.yNeg)
            {
                newDirector = new Vector3(0, -1, 0);
            }
            else if (dLeft == CameraMovement.Axes.zNeg)
            {
                newDirector = new Vector3(0, 0, -1);
            }
            break;

        case Directions.rightDown:
            if (dLeft == CameraMovement.Axes.xPos)
            {
                newDirector = new Vector3(-1, 0, 0);
            }
            else if (dLeft == CameraMovement.Axes.yPos)
            {
                newDirector = new Vector3(0, -1, 0);
            }
            else if (dLeft == CameraMovement.Axes.zPos)
            {
                newDirector = new Vector3(0, 0, -1);
            }
            else if (dLeft == CameraMovement.Axes.xNeg)
            {
                newDirector = new Vector3(1, 0, 0);
            }
            else if (dLeft == CameraMovement.Axes.yNeg)
            {
                newDirector = new Vector3(0, 1, 0);
            }
            else if (dLeft == CameraMovement.Axes.zNeg)
            {
                newDirector = new Vector3(0, 0, 1);
            }
            break;

        case Directions.up:
            if (lateral == CameraMovement.Axes.xPos)
            {
                newDirector = new Vector3(1, 0, 0);
            }
            else if (lateral == CameraMovement.Axes.yPos)
            {
                newDirector = new Vector3(0, 1, 0);
            }
            else if (lateral == CameraMovement.Axes.zPos)
            {
                newDirector = new Vector3(0, 0, 1);
            }
            else if (lateral == CameraMovement.Axes.xNeg)
            {
                newDirector = new Vector3(-1, 0, 0);
            }
            else if (lateral == CameraMovement.Axes.yNeg)
            {
                newDirector = new Vector3(0, -1, 0);
            }
            else if (lateral == CameraMovement.Axes.zNeg)
            {
                newDirector = new Vector3(0, 0, -1);
            }
            break;

        case Directions.down:
            if (lateral == CameraMovement.Axes.xPos)
            {
                newDirector = new Vector3(-1, 0, 0);
            }
            else if (lateral == CameraMovement.Axes.yPos)
            {
                newDirector = new Vector3(0, -1, 0);
            }
            else if (lateral == CameraMovement.Axes.zPos)
            {
                newDirector = new Vector3(0, 0, -1);
            }
            else if (lateral == CameraMovement.Axes.xNeg)
            {
                newDirector = new Vector3(1, 0, 0);
            }
            else if (lateral == CameraMovement.Axes.yNeg)
            {
                newDirector = new Vector3(0, 1, 0);
            }
            else if (lateral == CameraMovement.Axes.zNeg)
            {
                newDirector = new Vector3(0, 0, 1);
            }
            break;
        }



        return(newDirector);
    }