当前位置: 首页>>代码示例>>C#>>正文


C# Cell.isCorner方法代码示例

本文整理汇总了C#中Cell.isCorner方法的典型用法代码示例。如果您正苦于以下问题:C# Cell.isCorner方法的具体用法?C# Cell.isCorner怎么用?C# Cell.isCorner使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Cell的用法示例。


在下文中一共展示了Cell.isCorner方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: moveCameraForCell

    public void moveCameraForCell(Cell moveToThisCell)
    {
        // Imposto il caller
        caller = CALLER.TO_CELL;
        // Dimensione della tavola in larghezza e lunghezza
        float board = 1850;
        // Altezza fissa della telecamera
        float height = 600;
        // Distanza x e/o z della telecamera dalla board
        float distance = 700;
        // Misura di mezza larghezza di cella
        float halfCell = 75;

        // Componenti del vettore finale di posizione
        float newX = 0;
        float newY = height;
        float newZ = 0;
        // Componenti del vettore finale di rotazione
        float newRX = 27;
        float newRY = 0;
        float newRZ = 0;
        // Vettore finale di posizione
        Vector3 newPosition;
        // Vettore finale di rotazione
        Vector3 newRotation;

        // GameObject di riferimento alla cella
        GameObject cell = GameObject.FindWithTag(moveToThisCell.getPosition().ToString());

        // Muovo la telecamera lungo gli assi diversamente a seconda del lato della cella
        if (moveToThisCell.getSide() == 1)
        {
            // Se la cella e' d'angolo, imposto coordinate fisse
            if (moveToThisCell.isCorner())
            {
                newX = -distance;
                newZ = -distance;
            }
            else
            {
                // Ottengo i valori della x e z
                newX = cell.transform.position.x + halfCell;
                newZ = -distance;
            }
        }
        else if (moveToThisCell.getSide() == 2)
        {
            // Se la cella e' d'angolo, imposto coordinate fisse
            if (moveToThisCell.isCorner())
            {
                newX = -distance;
                newZ = board + distance;
            }
            else
            {
                // Ottengo i valori della x e z
                newX = -distance;
                newZ = cell.transform.position.z + halfCell;
            }
        } else if (moveToThisCell.getSide() == 3)
        {
            // Se la cella e' d'angolo, imposto coordinate fisse
            if (moveToThisCell.isCorner())
            {
                newX = board + distance;
                newZ = board + distance;
            }
            else
            {
                // Ottengo i valori della x e z
                newX = cell.transform.position.x + halfCell;
                newZ = board + distance;
            }
        }
        else if (moveToThisCell.getSide() == 4)
        {
            // Se la cella e' d'angolo, imposto coordinate fisse
            if (moveToThisCell.isCorner())
            {
                newX = board + distance;
                newZ = -distance;
            }
            else
            {
                // Ottengo i valori della x e z
                newX = board + distance;
                newZ = cell.transform.position.z + halfCell;
            }
        }

        // La rotazione della telecamera sulle Y e' facilmente ottenibile a partire dal lato della cella
        newRY = (moveToThisCell.getSide() - 1) * 90;
        // Se la cella e' corner, devo aggiungere 45 alla rotazione sulle Y
        if (moveToThisCell.isCorner())
        {
            newRY += 45;
        }

        // Creo il vettore di posizione della telecamera
        newPosition = new Vector3(newX, newY, newZ);
//.........这里部分代码省略.........
开发者ID:BibleUs,项目名称:vgd-monopoly-uniba,代码行数:101,代码来源:MoveCamera.cs

示例2: getPositionsByCell

    public List<Vector3> getPositionsByCell(Cell cell)
    {
        List<Vector3> positions = new List<Vector3>();

        Vector3 newHighPosition = new Vector3();
        Vector3 newLowPosition = new Vector3();

        // Ottengo l'oggetto da spostare
        GameObject Token = gameObject;

        // Controllo se c'e' qualche altro giocatore nella cella adiacente e in quella attuale.
        // In tal caso, lo spostamento sara' shiftato di 50m per ogni pedina in piu'.
        int endRefactorValue = cell.getTokensOnCell();

        // Se la prossima cella e' d'angolo, mi comporto in una maniera
        if (cell.isCorner())
        {
            if (cell.getSide() == 1)
            {
                float xValue = GameObject.FindWithTag(cell.getPosition().ToString()).transform.position.x;
                newLowPosition = new Vector3(
                    57,
                    0,
                    140 + (50 * endRefactorValue)
                    );

                newHighPosition = new Vector3(
                    Token.transform.position.x - (Token.transform.position.x - newLowPosition.x) / 2,
                    highnessValue,
                    Token.transform.position.z
                    );
            }
            else if (cell.getSide() == 2)
            {
                float zValue = GameObject.FindWithTag(cell.getPosition().ToString()).transform.position.x;
                newLowPosition = new Vector3(
                    140 + (50 * endRefactorValue),
                    0,
                    1790
                    );

                newHighPosition = new Vector3(
                    Token.transform.position.x,
                    highnessValue,
                    Token.transform.position.z - (Token.transform.position.z - newLowPosition.z) / 2
                    );
            }
            else if (cell.getSide() == 3)
            {
                float xValue = GameObject.FindWithTag(cell.getPosition().ToString()).transform.position.x;
                newLowPosition = new Vector3(
                    1790,
                    0,
                    1750 + (50 * endRefactorValue)
                    );

                newHighPosition = new Vector3(
                    Token.transform.position.x - (Token.transform.position.x - newLowPosition.x) / 2,
                    highnessValue,
                    Token.transform.position.z
                    );
            }
            else if (cell.getSide() == 4)
            {
                float zValue = GameObject.FindWithTag(cell.getPosition().ToString()).transform.position.x;
                newLowPosition = new Vector3(
                    1710 + (50 * endRefactorValue),
                    0,
                    57
                    );

                newHighPosition = new Vector3(
                    Token.transform.position.x,
                    highnessValue,
                    Token.transform.position.z - (Token.transform.position.z - newLowPosition.z) / 2
                    );

            }
        }
        // altrimenti faccio avanzare verso destra/sinistra/alto/basso normalmente
        else
        {
            // Se la cella si trova sul primo lato, devo diminuire le X di 150 +/- i refactors
            if (cell.getSide() == 1)
            {
                float xValue = GameObject.FindWithTag(cell.getPosition().ToString()).transform.position.x;
                newLowPosition = new Vector3(
                    xValue + 100 - (50 * endRefactorValue),
                    0,
                    57
                    );

                newHighPosition = new Vector3(
                    Token.transform.position.x - (Token.transform.position.x - newLowPosition.x) / 2,
                    highnessValue,
                    57
                    );
            }
            else if (cell.getSide() == 2)
            {
//.........这里部分代码省略.........
开发者ID:BibleUs,项目名称:vgd-monopoly-uniba,代码行数:101,代码来源:PlayerMover.cs


注:本文中的Cell.isCorner方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。