示例#1
0
    void Awake()
    {
        // atualiza os recordes
        if (PlayerPrefs.HasKey("recorde"))
        {
            recorde = PlayerPrefs.GetInt("recorde");
        }
        else
        {
            recorde = 1;
        }
        txtRecorde.text = recorde.ToString();

        // prepara o primeiro hexagono
        StartCoroutine(Foca());

        // inicializa vetor de cores uma única vez
        Hexagono_Controlador.IniciaCores();

        // inicia o tutorial, se necessário
        if (PlayerPrefs.GetInt("tutorial") == 0)
        {
            StartCoroutine(Tutorial());
        }

        txtNomeLocal.text = PlayerPrefs.GetString("ultimoRecordista");

        // liga a vibração se for pra ligar
        #if UNITY_ANDROID
        SetVibracao(PlayerPrefs.GetInt("vibracao") == 1);
        #endif
    }
 private static void AddLigados(Hexagono_Controlador hex)
 {
     if (ligados == null)
     {
         ligados = new List <Hexagono_Controlador> ();
     }
     ligados.Add(hex);
 }
示例#3
0
    private IEnumerator ReiniciaRoutine()
    {
        Time.timeScale = 1;
        animFadeIn.SetTrigger("FadeOut");
        yield return(new WaitForSeconds(0.52f));

        estado = 0;
        Hexagono_Controlador.Reiniciar();
        SceneManager.LoadScene(0);
    }
示例#4
0
 public void Toque()
 {
     if (emTutorial)
     {
         esperandoToque = false;
     }
     foco = atual;
     foco.Liga();
     StartCoroutine(foco.GiraEmVolta());
     StartCoroutine(Foca());
 }
示例#5
0
    public void AddPontos()
    {
        pontos++;
        animPontos.SetTrigger("up");
        if (tabelaScores != null && tabelaScores.Length > 0)
        {
            if (proxRecordeIndice >= 0)
            {
                if (proxRecordeIndice > 0)
                {
                    txtRecorde.text = (pontos - recorde - 1).ToString();
                    if (pontos > proxRecorde && !emTutorial)
                    {
                        Avisa(tabelaScores[proxRecordeIndice].nome + " superado!");
                        ProximoDesafio();
                    }
                }
            }
            else
            {
                txtRecorde.text = "new";
            }
        }
        else if (pontos <= recorde)
        {
            txtRecorde.text     = (pontos - recorde - 1).ToString();
            txtNomeRecorde.text = "voce";
        }
        else
        {
            txtRecorde.text     = "new";
            txtNomeRecorde.text = "voce";
        }

        txtPontos.text = pontos.ToString();

        // adiciona nova cor pra aumentar dificuldade
        if (pontos % 10 == 0)
        {
            Hexagono_Controlador.AddCor();
        }
    }
示例#6
0
    public void AddPontos()
    {
        pontos++;
        animPontos.SetTrigger("up");
        if (proxRecordeIndice >= 0)
        {
            if (pontos > proxRecorde && !emTutorial)
            {
                Avisa(tabelaRecordes[proxRecordeIndice].nome + " superado!");
                ProximoDesafio();
            }
        }

        txtPontos.text = pontos.ToString();

        // adiciona nova cor pra aumentar dificuldade
        if (pontos % 10 == 0)
        {
            Hexagono_Controlador.AddCor();
        }
    }
示例#7
0
    private IEnumerator Tutorial()
    {
        // desabilita poluição da gui e prepara
        emTutorial     = true;
        Time.timeScale = 0.5f;
        botaoPausa.SetActive(false);
        txtPontos.gameObject.SetActive(false);
        txtRecorde.transform.parent.gameObject.SetActive(false);
        string tmpNomeRecorde = txtNomeRecorde.text;
        int    tmpRecorde     = recorde;

        txtNomeRecorde.text = "";
        ResetaPontos();

        // apresenta como jogar
        yield return(StartCoroutine(PassoTutorial("toque na tela para ligar o hexágono em foco")));

        // apresenta objetivo
        yield return(StartCoroutine(PassoTutorial("se os hexágonos ligados forem da mesma cor, você pontua")));

        // espera a pessoa pontuar
        Avisa("tente pontuar!\nligue hexágonos da mesma cor", true);
        while (pontos < 2)
        {
            yield return(null);
        }
        Avisa("", false);
        yield return(new WaitForSeconds(0.5f));


        // apresenta os pontos
        txtPontos.gameObject.SetActive(true);
        yield return(StartCoroutine(PassoTutorial("seus pontos aparecem lá em cima")));

        // apresenta os recordes e coloca um recorde temporario
        recorde         = 4;
        txtRecorde.text = (pontos - recorde - 1).ToString();
        txtRecorde.transform.parent.gameObject.SetActive(true);
        yield return(StartCoroutine(PassoTutorial("os pontos que faltam para bater o recorde aparecem abaixo")));

        // espera bater o recorde
        Avisa("bata o recorde!", true);
        while (pontos < 5)
        {
            yield return(null);
        }
        Avisa("", false);
        yield return(new WaitForSeconds(0.5f));

        // apresenta os coringas
        Hexagono_Controlador.TodosSaoCoringas(true);
        yield return(StartCoroutine(PassoTutorial("hexagonos que mudam de cor são coringas")));

        Hexagono_Controlador.TodosSaoCoringas(false);

        // apresenta o zoomout
        Avisa("toque na parte superior da tela para ter uma visão geral", true);
        esperandoAcao = true;
        while (esperandoAcao)
        {
            yield return(null);
        }
        Avisa("", false);
        yield return(new WaitForSeconds(0.5f));

        // apresenta a pausa
        botaoPausa.SetActive(true);
        Avisa("toque nas barras lá em cima para pausar", true);
        while (Time.timeScale != 0)
        {
            yield return(null);
        }
        Avisa("", false);
        yield return(new WaitForSeconds(0.5f));

        // finaliza
        Avisa("tutorial completo!");

        // volta o jogo ao normal para continuar rodada
        // habilita essa parte se conseguir consertar os bugs que isso causa (provavelmente por causa dos coringas)
        //txtNomeRecorde.text = tmpNomeRecorde;
        recorde = tmpRecorde;
        //txtRecorde.text = tmpRecorde.ToString();
        //Time.timeScale = 1;
        // inserir conquista

        emTutorial = false;
        PlayerPrefs.SetInt("tutorial", 1);
        // -- essa parte é temporaria pelo comentario de cima
        yield return(new WaitForSeconds(1.5f));

        Reiniciar();
        // --
    }
示例#8
0
    private IEnumerator Tutorial()
    {
        // desabilita poluição da gui e prepara
        emTutorial     = true;
        Time.timeScale = 0.5f;
        botaoPausa.SetActive(false);
        txtPontos.gameObject.SetActive(false);
        txtRecorde.transform.parent.gameObject.SetActive(false);
        ResetaPontos();

        // apresenta como jogar
        yield return(StartCoroutine(PassoTutorial("Toque na tela para ligar o hexágono em foco")));

        // apresenta objetivo
        yield return(StartCoroutine(PassoTutorial("Se os hexágonos ligados forem da mesma cor, você pontua")));

        txtPontos.gameObject.SetActive(true);
        // espera a pessoa pontuar
        Avisa("Ligue hexágonos da mesma cor!\nFaça 5 pontos!", true);
        while (pontos < 5)
        {
            yield return(null);
        }
        Avisa("", false);
        yield return(new WaitForSeconds(0.5f));


        // apresenta os pontos
        txtPontos.gameObject.SetActive(true);
        yield return(StartCoroutine(PassoTutorial("Seus pontos aparecem lá em cima")));

        // apresenta os recordes e coloca um recorde temporario
        txtRecorde.transform.parent.gameObject.SetActive(true);
        yield return(StartCoroutine(PassoTutorial("Os pontos que faltam para bater o recorde aparecem abaixo")));

        yield return(new WaitForSeconds(0.5f));

        // apresenta os coringas
        Hexagono_Controlador.TodosSaoCoringas(true);
        yield return(StartCoroutine(PassoTutorial("Hexagonos que mudam de cor são coringas")));

        Hexagono_Controlador.TodosSaoCoringas(false);

        // apresenta o zoomout
        Avisa("Toque na parte superior da tela para ter uma visão geral", true);
        esperandoAcao = true;
        while (esperandoAcao)
        {
            yield return(null);
        }
        Avisa("", false);
        yield return(new WaitForSeconds(0.5f));

        // apresenta a pausa
        botaoPausa.SetActive(true);
        Avisa("Toque nas barras lá em cima para pausar", true);
        while (Time.timeScale != 0)
        {
            yield return(null);
        }
        Avisa("", false);
        yield return(new WaitForSeconds(0.5f));

        // finaliza
        Avisa("Tutorial completo!");

        // inserir conquista

        emTutorial = false;
        PlayerPrefs.SetInt("tutorial", 1);
        // -- essa parte é temporaria pelo comentario de cima
        yield return(new WaitForSeconds(1.5f));

        Reiniciar();
        // --
    }