コード例 #1
0
    void siguienteLetra()
    {
        i--;
        if (i < 0)
        {
            EjercicioExitoso();
        }
        else
        {
            usarOtroDL = false;
            datosL     = letras[i].GetComponent <datosLetra>();
            datosL.primeraActivacion();
            //datosL.activarPuntos();
            datosL.primerPunto(false);
            ultimoPunto      = datosL.puntos.Length;
            tipoLetra        = datosL.tipoLetra;
            idEspecialLetra  = datosL.puntoIdEspecial;
            idPrimerPunto    = 1;
            idPuntoActual    = 0;
            idPuntoSiguiente = 1;
            idRepetido       = 0;
            aciertos         = 0;
            switch (tipoLetra)
            {
            case "cerrada":
                aciertosNecesarios = ultimoPunto + 1;
                break;

            case "unTrazo":
                aciertosNecesarios = ultimoPunto;
                break;

            case "dosTrazos":
                aciertosNecesarios = ultimoPunto;
                DrawLine clone;
                clone = Instantiate(draw);
                listaDL.Add(clone);
                indexDL++;
                break;
            }
            UnityEngine.Debug.Log("siguiente: " + idPuntoSiguiente + " actual: " + idPuntoActual);
        }
    }
コード例 #2
0
    //Inicialización de variables
    void Start()
    {
        #region desactivar para pruebas de palabras nuevas
        Time.timeScale = 1;

        p             = EstadoJuego.estadoJuego.palabra;
        letrasArreglo = p.ToCharArray();
        UnityEngine.Debug.Log("Prefab/Palabras paso 2/palabra " + p);
        palabra = Resources.Load("Prefab/Palabras paso 2/palabra " + p) as GameObject;
        AudioClip sonido;
        sonido = Resources.Load <AudioClip>("Sonidos/Figuras/" + palabra);
        GetComponent <AudioSource>().PlayOneShot(sonido);

        Vector3 vectorCentro;

        GameObject go1 = GameObject.Find("Canvas").gameObject;
        GameObject go2 = GameObject.Find("BgImage").gameObject;
        vectorCentro   = go2.transform.position;
        vectorCentro.z = -2;
        GameObject go = Instantiate(palabra, vectorCentro, Quaternion.identity, go1.transform);

        #endregion


        indexDL    = -1;
        listaDL    = new List <DrawLine>();
        usarOtroDL = false;

        //todo esto es por la primera letra
        //Conseguimos una lista de letras
        letras = GameObject.FindGameObjectsWithTag("letra");

        UnityEngine.Debug.Log("numero de letras en el juego: " + letras.Length);
        UnityEngine.Debug.Log("numero de letras en la palabra: " + letrasArreglo.Length);

        //acomodar las letras

        for (int d = 0; d < letras.Length; d++)
        {
            UnityEngine.Debug.Log(letras[d].gameObject.transform.name);
        }

        GameObject[] letrasAcomodadas = new GameObject[letras.Length];

        for (int m = 0; m < letrasArreglo.Length; m++)
        {
            UnityEngine.Debug.Log("m: " + m);
            for (int l = 0; l < letras.Length; l++)
            {
                UnityEngine.Debug.Log("l: " + l);
                //letra c <- son 7 caracteres en total
                if (letrasArreglo[m] == letras[l].gameObject.transform.name[6])
                {
                    //UnityEngine.Debug.Log("Hey este numero parece dar problemas: " + m + " o este: " + l);
                    letrasAcomodadas[m] = letras[l];
                    letras[l].gameObject.transform.name = "0000000000";
                    break;
                }
            }
        }

        letras = letrasAcomodadas;

        Array.Reverse(letras);

        UnityEngine.Debug.Log("DESPUES DEL ACOMODO Y REVERSA: ");
        for (int d = 0; d < letras.Length; d++)
        {
            UnityEngine.Debug.Log(letras[d].gameObject.transform.name);
        }

        //después de acomodar letras
        i = letras.Length - 1;
        UnityEngine.Debug.Log("i es: " + i);
        // Después, de la primera letra de la palabra sacamos su script
        // de datosL donde esta la lista de gameobject de puntos
        datosL = letras[i].GetComponent <datosLetra>();

        //solo se necesita la cantidad de puntos
        puntos = datosL.puntos.Length;

        drawLines = new DrawLine[letras.Length];

        //necesitamos varios drawline para poder hacer que esto funcione
        for (int f = 0; f < letras.Length; f++)
        {
            DrawLine clone;
            clone        = Instantiate(draw);
            drawLines[f] = clone;
            drawLines[f].gameObject.name = drawLines[f].gameObject.name + " " + f;

            //UnityEngine.Debug.Log("nombre: " + drawLines[f].gameObject.transform.name);
        }

        //Al parecer, unity necesita un momento extra para poder activar esto, pues si lo activa muy rapido, se vuelve a desactivar.
        Invoke("activarPuntosPrueba", (float).2);
        tipoLetra       = datosL.tipoLetra;
        idEspecialLetra = datosL.puntoIdEspecial;
        UnityEngine.Debug.Log(idEspecialLetra + "<- id especial");
        datosL.primerPunto(false);
        ultimoPunto = puntos;

        switch (tipoLetra)
        {
        case "cerrada":
            aciertosNecesarios = ultimoPunto + 1;
            break;

        case "unTrazo":
            aciertosNecesarios = ultimoPunto;
            break;

        case "dosTrazos":
            aciertosNecesarios = ultimoPunto;
            DrawLine clone;
            clone = Instantiate(draw);
            listaDL.Add(clone);
            indexDL++;
            break;
        }


        //todo esto es por la primera letra



        updateTimer      = true;
        duracion         = 0.0f;
        terminar         = true;
        idPrimerPunto    = 1;
        idPuntoActual    = 1;
        idPuntoSiguiente = 1;
        aciertos         = 0;
        idRepetido       = 0;

        //Lo que hace que aparezcan y desaparezcan los cuadros y el mensaje inmediato

        GameObject.Find("btnSiguiente").SetActive(false);
        GameObject.Find("txtRetroDirecta").SetActive(false);

        //Suscribir este método (SeHizoContacto) al evento de Contacto en la clase Puntos.
        HandCursor.Contacto += SeHizoContacto;
    }