/// <summary> /// Destrói o distrator /// </summary> public void DestroyDistractor() { Cursor.SetCursor(null, Vector2.zero, CursorMode.Auto); //Muda o curso de volta ao normal, pois a função OnPointerExit não funciona quando o objeto é destruído numDistractors--; if (numDistractors == 0 /*&& LevelController.TimeIsRunning*/) //Verifica o número de distradores na cena para ver se pode desbloquear os botões { LevelController.bloqueiaBotao = false; silabaControl.CompleteEmptyTextSlots(); // Instancia a seta indicadora quando todos os distratores são destruidos SetaIndicadora.SetaSetup(); //SetaIndicadora.DestroiSeta(); SetaIndicadora.IndicarPos(); } gameObjectPosition = new Vector3(gameObject.transform.position.x, gameObject.transform.position.y, gameObject.transform.position.z); Instantiate(explosion, gameObjectPosition, Quaternion.identity); Destroy(gameObject); }
/// <summary> /// Escolhe uma silaba aleatoriamente dentro dos arquivos de áudio carregados em "silabasNivelAtual" e a toca /// </summary> public void TocarSilaba()//escolhe e toca uma sílaba aleatória (random nos arquivos de áudio) { //randomNumber = Random.Range(0, silabasNivelAtual.Length); randomNumber = RandomNotSoRandom(); LevelController.PalavraSelecionada = silabasNivelAtual[randomNumber].name.ToUpper();//pega a sílaba (nome do arquivo sem a extensão) aleatóriamente // Guarda a palavra selecionada para o jogador DataManager.statisticsData.palavraSelecionada = LevelController.PalavraSelecionada; // Verifica se a PalavraSelecionada deve ser separada em sílabas ou letras if (LevelController.eSilaba) { LevelController.SeparaSilabas(); } else { LevelController.SeparaLetras(); } IsPlanetLetterSetup(); silabaAtual = silabasNivelAtual[randomNumber] as AudioClip; wordTime = silabaAtual.length; soundManager.PlaySilaba(silabaAtual); StartCoroutine(WaitForSound(silabaAtual.length)); StartCoroutine(timer.SetTimeIsRunning(silabaAtual)); buttonDicaAudio.ActiveButton(); buttonDicaVisual.ActiveButton(); if (stageManager.blockTextSlot) { BloqueiaEmptyTextSlots(); StartCoroutine(WaitAndWriteEmptySlots()); } // Se não for o caso de ter distratores, instancia a seta agora (se tiver distratodres, instancia no script Distractor) if (!GameObject.Find("Distractor Creator")) { SetaIndicadora.SetaSetup(); //SetaIndicadora.DestroiSeta(); SetaIndicadora.IndicarPos(); } }
/// <summary> /// Se o teclado digita estiver liberado, recebe a letra digitada e concatena com as previamente digitadas (se não atingiu o máximo de letras) /// Após concatenar, verifica se pode liberar o botão para confirmar a resposta /// </summary> public void buttonPressed() { if (!LevelController.bloqueiaBotao) { click.Play(0); // toca som de apertando o botao (click_tecla01) int i = 0; // Encontra em qual silaba está (i = silaba em que está - 1) while (i < LevelController.textSlots && LevelController.inputText[i] != null && LevelController.originalText[i].Length <= LevelController.inputText[i].Length) { i++; } // Verificar se a silaba em questão está completa (todas as letras) e se pode liberar o botão confirma if (i < LevelController.textSlots) { if (LevelController.inputText[i] == null || LevelController.inputText[i].Length < LevelController.originalText[i].Length) { LevelController.inputText[i] = string.Concat(LevelController.inputText[i], currentButton.name); } if (stageManager.textSlots == i + 1 && LevelController.inputText[i].Length == LevelController.originalText[i].Length) { LevelController.BotaoConfirmaResposta = true; } } // Verifica se há mais algum espaço a ser preenchido while (i < LevelController.textSlots && LevelController.inputText[i] != null && LevelController.originalText[i].Length <= LevelController.inputText[i].Length) { i++; } if (i == LevelController.textSlots) { LevelController.BotaoConfirmaResposta = true; } SetaIndicadora.DestroiSeta(); SetaIndicadora.IndicarPos(); } }
/// <summary> /// Verifica se tem alguma silaba escrita e apaga somente a ultima silaba escrita /// </summary> public void buttonPressed() { // Verifica se os botões não estão bloqueados if (!LevelController.bloqueiaBotao) { //click.Play(0); // Encontra o máximo de sílabas existentes menos 1 - vetor inicia em 0 int i = LevelController.textSlots - 1; SilabaControl silabaControl = SilabaControl.instance; // Varre o vetor a partir do final procurando a última sílaba digitada while (i > -1) { // Se o vetor é vazio, não faz nada if (LevelController.inputText[i] != null) { // Se não for vazio, verifica se existe alguma letra na posição i do vetor if (LevelController.inputText[i].Length > 0) { // Se tem letra, ve se pode apagar if (silabaControl.isPlanetLetter[i]) { // Apaga e sai LevelController.inputText[i] = "";//.Remove(LevelController.silabasDigitadas[1].Length - 1); break; } } } i--; } // Bloqueia o botão de confirmar resposta, pois todas as sílabas não foram digitadas LevelController.BotaoConfirmaResposta = false; } SetaIndicadora.DestroiSeta(); SetaIndicadora.IndicarPos(); }