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")); } } }
/* 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")); }