本文整理汇总了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)
{
//.........这里部分代码省略.........
示例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);
//.........这里部分代码省略.........
示例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();
}
}