Esempio n. 1
0
    /// <summary>
    /// Administra el flujo del juego (aciertos, combos, tiempo restante, puntuacion, etc...)
    /// </summary>
    void Update()
    {
        if (tiempoDeJuego.Corriendo)
        {
            // mantiene el HUD actualizado
            hud.ActualizarCombo(combo);
            hud.ActualizarPuntos(puntuacion);
            hud.ActualizarTiempo((int)tiempoDeJuego.TiempoRestante);

            // manejo de flecha der e izq
            float ejeHor = Input.GetAxis("Horizontal");
            if (ejeHor > 0 && !ejeHorPres)
            {
                // Determinando si el jugador acierta o no
                if (adminDePersonajes.DireccionActual == Spawner.Direccion.Der)
                {
                    aciertos++;
                    combo = (aciertos != 0 && aciertos % 4 == 0) ? combo + 1 : combo;

                    puntuacion += 100 * combo;
                }
                else
                {
                    aciertos = 0;
                    combo    = 1;
                }

                adminDePersonajes.Reubicar();

                ejeHorPres = true;
            }

            else if (ejeHor < 0 && !ejeHorPres)
            {
                if (adminDePersonajes.DireccionActual == Spawner.Direccion.Izq)
                {
                    aciertos++;
                    combo = (aciertos != 0 && aciertos % 4 == 0) ? combo + 1 : combo;

                    puntuacion += 100 * combo;
                }
                else
                {
                    aciertos = 0;
                    combo    = 1;
                }

                adminDePersonajes.Reubicar();

                ejeHorPres = true;
            }

            else if (ejeHor == 0 && ejeHorPres)
            {
                ejeHorPres = false;
            }

            // manejo de flecha arr y abj
            float ejeVert = Input.GetAxis("Vertical");
            if (ejeVert > 0 && !ejeVertPres)
            {
                // Determinando si el jugador acierta o no
                if (adminDePersonajes.DireccionActual == Spawner.Direccion.Arr)
                {
                    aciertos++;
                    combo = (aciertos != 0 && aciertos % 4 == 0) ? combo + 1 : combo;

                    puntuacion += 100 * combo;
                }
                else
                {
                    aciertos = 0;
                    combo    = 1;
                }

                adminDePersonajes.Reubicar();

                ejeVertPres = true;
            }
            else if (ejeVert < 0 && !ejeVertPres)
            {
                if (adminDePersonajes.DireccionActual == Spawner.Direccion.Abj)
                {
                    aciertos++;
                    combo = (aciertos != 0 && aciertos % 4 == 0) ? combo + 1 : combo;

                    puntuacion += 100 * combo;
                }
                else
                {
                    aciertos = 0;
                    combo    = 1;
                }

                adminDePersonajes.Reubicar();

                ejeVertPres = true;
            }

            else if (ejeVert == 0 && ejeVertPres)
            {
                ejeVertPres = false;
            }
        }
    }