예제 #1
0
    private void controlGotas()
    {
        /*
         * Las gotas caen en casillas de color base en principio (se puede hacer que esto varie con la dificultad).
         * Cuando una gota cae, eliminar la casilla del array de control y moverla al que corresponda.
         *
         * Las gotas tambien se lanzan en intervalos de tiempo controlados, para que el sonido salga sincronizado con la musica. Al menos, dentro de unos limites razonables.
         * Para ello, la animacion de la gota cayendo debe durar la mitad de "tiempoRitmo" y el sonido sonar cuando toque el tablero.
         */
        if (iniciaRitmo && (Time.time - tiempoUltima) > tiempoRitmo)
        {
            float probGotas = 0.0f;
            switch (dificultad)
            {
            case 0:
                probGotas = 0.02f;
                break;

            case 1:
                probGotas = 0.03f;
                break;

            case 2:
                probGotas = 0.08f;
                break;

            case 3:
                probGotas = 0.2f;
                break;

            default:
                Debug.LogError("La dificultad seleccionada es erronea. Dificultad: " + dificultad + ".");
                break;
            }
            if (Random.Range(0.0f, 1.0f) < probGotas)
            {
                if (colorBaseCont.numero == 0)
                {
                    return;
                }
                tiempoUltima = Time.time;
                int        numCas      = Random.Range(0, colorBaseCont.numero - 1);
                GameObject casillaTemp = colorBaseCont.array[numCas];
                GameObject gotaTemp;
                gotaTemp = Instantiate(prefabGota, casillaTemp.transform.position, casillaTemp.transform.rotation) as GameObject;
//				colorBaseCont.quitar(numCas);
                scriptGota gotaScriptTemp = gotaTemp.GetComponentInChildren <scriptGota>();
                gotaScriptTemp.colorGota   = colorAleatorio();
                gotaScriptTemp.casilla     = casillaTemp;
                gotaScriptTemp.scriptPadre = this as LogicaControl;
                gotaScriptTemp.numCasilla  = numCas;
                gotaScriptTemp.control     = colorBaseCont;
                gotaTemp.GetComponentInChildren <Renderer>().material.SetColor("_Emission", colBoolToMat(gotaScriptTemp.colorGota).GetColor("_SpecColor"));
            }
        }
    }
예제 #2
0
    /* DEBUG LANZAR GOTA */
    private void lanzarGota()
    {
        int        numCas      = Random.Range(0, colorBaseCont.numero - 1);
        GameObject casillaTemp = colorBaseCont.array[numCas];
        GameObject gotaTemp;

        gotaTemp = Instantiate(prefabGota, casillaTemp.transform.position, casillaTemp.transform.rotation) as GameObject;
        scriptGota gotaScriptTemp = gotaTemp.GetComponentInChildren <scriptGota>();

        gotaScriptTemp.colorGota   = colorAleatorio();
        gotaScriptTemp.casilla     = casillaTemp;
        gotaScriptTemp.scriptPadre = this as LogicaControl;
        gotaScriptTemp.numCasilla  = numCas;
        gotaScriptTemp.control     = colorBaseCont;
        gotaTemp.GetComponentInChildren <Renderer>().material.SetColor("_Emission", colBoolToMat(gotaScriptTemp.colorGota).GetColor("_SpecColor"));
    }