當前位置: 首頁>>代碼示例>>C#>>正文


C# Cell.getPosition方法代碼示例

本文整理匯總了C#中Cell.getPosition方法的典型用法代碼示例。如果您正苦於以下問題:C# Cell.getPosition方法的具體用法?C# Cell.getPosition怎麽用?C# Cell.getPosition使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在Cell的用法示例。


在下文中一共展示了Cell.getPosition方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。

示例1: 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

示例2: 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

示例3: moveTokenToCell

    public void moveTokenToCell(Cell movePlayerFromThisCell, Cell movePlayerToThisCell, List<Cell> Cells)
    {
        // Aggiorno i valori ricevuti in input
        this.movePlayerFromThisCell = movePlayerFromThisCell;
        this.movePlayerToThisCell = movePlayerToThisCell;
        this.Cells = Cells;

        numberOfMovements = 0;

        // Calcolo il numero di movimenti ancora da eseguire
        numberOfMovements = (movePlayerToThisCell.getPosition() - movePlayerFromThisCell.getPosition()) % 40;
        if (numberOfMovements < 0)
        {
            numberOfMovements = 40 + numberOfMovements;
        }

        // UNDONE: eliminare seguente riga di testing
        // numberOfMovements = 1;

        // Se ci sono movimenti da eseguire
        if (numberOfMovements > 0)
        {
            // Effettuo il movimento
            moveTokenToNextCell();
        }
        else
        {
            player.setCurrentCell(movePlayerToThisCell);
            movementCompleted();
        }
    }
開發者ID:BibleUs,項目名稱:vgd-monopoly-uniba,代碼行數:31,代碼來源:PlayerMover.cs


注:本文中的Cell.getPosition方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。