// Use this for initialization void Awake() { tam = PuzzleManager.Instance.dameTam(); GridLayoutGroup Grid = puzzleField.GetComponent <GridLayoutGroup>(); if (Grid == null) { Debug.Log("Falta script layout"); } else { Grid.constraintCount = tam; for (int i = 0; i < tam * tam; i++) { GameObject buttonn = Instantiate(button); buttonn.name = "" + i; buttonn.transform.SetParent(puzzleField, false); TilePR2 tile = buttonn.GetComponent <TilePR2>(); tile.Posicion.Set(i % tam, i / tam); /* * if(i < 3){ * tile.estado = (eCasilla) i + 3; * tile.SetOcupada(true); * }*/ } } PuzzleManager.Instance.SetPiezas(puzzleField); }
// Use this for initialization void Start() { matriz = new eCasilla[tam, tam]; for (int i = 0; i < 3; i++) { matriz[i, 0] = (eCasilla)(i + 3); } Transform pieza = Piezas.GetChild(0); TilePR2 logica = pieza.GetComponent <TilePR2>(); logica.avanza(0); matriz[0, 0] = eCasilla.obsR; pieza = Piezas.GetChild(9); logica = pieza.GetComponent <TilePR2>(); logica.avanza(1); matriz[9, 0] = eCasilla.obsG; pieza = Piezas.GetChild(99); logica = pieza.GetComponent <TilePR2>(); logica.avanza(2); matriz[9, 9] = eCasilla.obsB; Fondo.color = colores[0]; }
private void actualizaTablero(List <dim> camino) { for (int i = 0; i < 100; i++) { int x = i % 10; int y = i / 10; Transform pieza = Piezas.GetChild(i); TilePR2 logica = pieza.GetComponent <TilePR2>(); matriz[x, y] = logica.estado; } for (int i = 0; i < camino.Count; i++) { Transform pieza = Piezas.GetChild(camino[i].x + camino[i].y * 10); Image tileColor = pieza.GetComponent <Image>(); tileColor.color = new Color(255, 255, 255, 255); } }
IEnumerator resolver(List <dim> camino, dim origen, dim destino, int coche) { Transform pieza = Piezas.GetChild(origen.x + origen.y * 10); TilePR2 logica = pieza.GetComponent <TilePR2>(); Image tileColor = pieza.GetComponent <Image>(); tileColor.color = colores[coche + 1]; bool avanzar = true; int i; for (i = 1; avanzar && i <= camino.Count; i++) { logica.vuelve(); matriz[camino[i - 1].x, camino[i - 1].y] = logica.estado; float aux = (float)matriz[camino[i - 1].x, camino[i - 1].y] + 1; pieza = Piezas.GetChild(camino[i - 1].x + camino[i - 1].y * 10); logica = pieza.GetComponent <TilePR2>(); tileColor = pieza.GetComponent <Image>(); tileColor.color = colores[coche + 1]; avanzar = logica.avanza(coche); if (!avanzar) { pieza = Piezas.GetChild(camino[i - 2].x + camino[i - 2].y * 10); logica = pieza.GetComponent <TilePR2>(); logica.avanza(coche); matriz[camino[i - 2].x, camino[i - 2].y] = logica.estado; aux = 0; } yield return(new WaitForSecondsRealtime(0.5f * aux)); } actualizaTablero(camino); if (!avanzar) { recalcula(camino[i - 3], destino, coche); } }