Exemple #1
0
    private GameObject ferVoltant(Taulell taulell)
    {
        GameObject exterior = new GameObject("BordeExterior");
        int        x        = -1;
        int        y        = -1;

        //Paret exterior verticals
        for (int i = 0; i < taulell.nFiles; i++)
        {
            (Instantiate(this.goParetOutH, new Vector3(-1.28f, i * 1.28f, 0F), Quaternion.identity) as GameObject).transform.SetParent(exterior.transform);
            (Instantiate(this.goParetOutH, new Vector3(taulell.nColumnes * 1.28f, i * 1.28f, 0F), Quaternion.identity) as GameObject).transform.SetParent(exterior.transform);
        }
        //Paret exterior horizontals
        for (int i = 0; i < taulell.nColumnes; i++)
        {
            (Instantiate(this.goParetOutH, new Vector3(i * 1.28f, -1.28f, 0F), Quaternion.identity) as GameObject).transform.SetParent(exterior.transform);
            (Instantiate(this.goParetOutH, new Vector3(i * 1.28f, taulell.nFiles * 1.28f, 0F), Quaternion.identity) as GameObject).transform.SetParent(exterior.transform);
        }

        //Fer els 4 extrems.
        (Instantiate(this.goParetOutH, new Vector3(-1.28f, -1.28f, 0F), Quaternion.identity) as GameObject).transform.SetParent(exterior.transform);
        (Instantiate(this.goParetOutH, new Vector3(taulell.nColumnes * 1.28f, taulell.nFiles * 1.28f, 0F), Quaternion.identity) as GameObject).transform.SetParent(exterior.transform);
        (Instantiate(this.goParetOutH, new Vector3(taulell.nColumnes * 1.28f, -1.28f, 0F), Quaternion.identity) as GameObject).transform.SetParent(exterior.transform);
        (Instantiate(this.goParetOutH, new Vector3(-1.28f, taulell.nFiles * 1.28f, 0F), Quaternion.identity) as GameObject).transform.SetParent(exterior.transform);
        return(exterior);
    }
Exemple #2
0
    private void setup(Taulell taulell)
    {
        int        iRecurs = taulell.nivell % 4;
        GameObject t       = new GameObject("taulell");

        t.transform.SetParent(boardHolder);
        int nMonedes = 0;

        foreach (Casella casella in taulell)
        {
            Posicio    pos     = casella.getPosicio();
            GameObject objecte = null;            //<Objecte a instanciar: moneda, pared, sortida...
            GameObject numero  = null;            //<Numero de la casella.
            GameObject terra   = Random.Range(0, 3) < 2 ? this.goTerra : this.goTerres[iRecurs];

            switch (casella.getElement())
            {
            case Element.MONEDA:
                objecte = this.goMoneda;
                numero  = this.goNumero;
                //objecte.transform.SetParent(monedes.transform);
                nMonedes++;
                break;

            case Element.PARED_IN_V:
            case Element.PARED_IN_H:
                objecte = this.goParetIn;
                //Per qualsevol tipus de pared, posem terra normal.
                terra = this.goTerra;
                break;

            case Element.BUIT:
                numero = this.goNumero;
                break;
            }
            GameObject instanciaTerra = Instantiate(terra, new Vector3(pos.x * 1.28f, pos.y * 1.28f, 0F), Quaternion.identity) as GameObject;
            instanciaTerra.transform.SetParent(t.transform);
            if (objecte != null)
            {
                //Hi ha objecte en la casella.
                GameObject instanciaObjecte = Instantiate(objecte, new Vector3(pos.x * 1.28f, pos.y * 1.28f, 0F), Quaternion.identity) as GameObject;
                instanciaObjecte.transform.SetParent(instanciaTerra.transform);
            }
            if (numero != null)
            {
                //Hi ha número en la casella.
                GameObject instanciaNumero = Instantiate(numero, new Vector3(pos.x * 1.28f, pos.y * 1.28f, 0F), Quaternion.identity) as GameObject;
                instanciaNumero.GetComponent <UnityEngine.UI.Text>().text = "" + casella.getNumero();
                //El número també és fill del terra.
                instanciaNumero.transform.SetParent(instanciaTerra.transform);
            }
        }
        //Instanciar el jugador.
        GameObject instanciaJugador = Instantiate(this.goJugador, new Vector3(taulell.jugador.posicio.x, taulell.jugador.posicio.y * 0.84f, 0F), Quaternion.identity) as GameObject;

        instanciaJugador.transform.SetParent(boardHolder);

        //Instanciar la sortida.
        GameObject instanciaSortida = Instantiate(this.goSortides[iRecurs], new Vector3(taulell.sortida.posicio.x * 1.28f, taulell.sortida.posicio.y * 1.28f, 0F), Quaternion.identity) as GameObject;

        instanciaSortida.transform.SetParent(boardHolder);

        GameManager.instancia.setTotalMonedes(nMonedes);
        GameManager.instancia.setSortida(instanciaSortida);
        //Fer les parets exteriors per evitar que el jugador surti de la pantalla.
        ferVoltant(taulell).transform.SetParent(boardHolder);
    }