Finalização Calculadora, fazer com que o jogador tente novamente
Página 1 de 1
Finalização Calculadora, fazer com que o jogador tente novamente
Boa Tarde, preciso de uma ajuda em um script, estou tentando terminar uma Calculadora, o código tá quase todo pronto, o único problema que eu fiz de aparecer novamente as operações se o jogador errar, mas os números que o jogador coloca na tela não estão zerando, preciso fazer com que o número volte para uma "?" que seria o gameobject TextoInterogação, e voltar para que o jogador consiga digitar novamente o resultado e assim por diante cada vez que ele erra conseguir novamente
o Script está assim:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class BotaoTexto : MonoBehaviour
{
public TextMeshProUGUI texto;
public GameObject TextoInterrogação;
public float timer;
private int nextSceneLoad;
public bool DigitoJogador;
public GameObject[] objetosErro, objetosCertos;
public int PrimeiroNumero;
public int SegundoNumero;
public char[] operators = {'+' , '*' , '-' , '/'};
public int resultado;
private string ShowOP;
public TextMeshProUGUI textDisplay;
// Start is called before the first frame update
void Start()
{
Texto.SetActive(true);
nextSceneLoad = SceneManager.GetActiveScene().buildIndex + 1;
for (int i = 0; i < objetosCertos.Length; i++)
{
objetosErro[i].SetActive(false);
objetosCertos[i].SetActive(true);
}
RandomOperation();
}
// Update is called once per frame
void Update()
{
string resultado2 = resultado.ToString();
if(resultado2 == texto.text && DigitoJogador == true){
timer += Time.deltaTime;
for (int i = 0; i < objetosCertos.Length; i++)
{
objetosErro[i].SetActive(false);
objetosCertos[i].SetActive(true);
}
if(timer >= 2){
SceneManager.LoadScene(nextSceneLoad);
}
}else if(resultado2 != texto.text && DigitoJogador == true){
timer += Time.deltaTime;
for (int i = 0; i < objetosErro.Length; i++)
{
objetosErro[i].SetActive(true);
objetosCertos[i].SetActive(false);
}
if(timer >= 3)
{
Texto.SetActive(true);
RandomOperation();
}
}
}
public void AddDigito(string digito){
Texto.SetActive(false);
if(texto.text.Length < 2){
texto.text = texto.text + digito;
}
DigitoJogador = true;
}
public void RandomOperation(){
var op = operators[Random.Range(0, operators.Length)];
timer = 0;
DigitoJogador = false;
SortearNovosValores:
PrimeiroNumero = Random.Range (0,9);
SegundoNumero = Random.Range (0,9);
switch(op){
case '+':
resultado = PrimeiroNumero + SegundoNumero;
break;
case 'x':
resultado = PrimeiroNumero * SegundoNumero;
break;
case '-':
resultado = PrimeiroNumero - SegundoNumero;
if (resultado < 0){
goto SortearNovosValores;
}
break;
case '÷':
if (PrimeiroNumero < SegundoNumero || SegundoNumero == 0){
goto SortearNovosValores;
}
else if (PrimeiroNumero % SegundoNumero == 0){
resultado = PrimeiroNumero / SegundoNumero;
}else{
goto SortearNovosValores;
}
break;
}
ShowOP = PrimeiroNumero.ToString() + " " + op.ToString() + " " + SegundoNumero.ToString() + " = ";
textDisplay.text = ShowOP;
}
}
o Script está assim:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class BotaoTexto : MonoBehaviour
{
public TextMeshProUGUI texto;
public GameObject TextoInterrogação;
public float timer;
private int nextSceneLoad;
public bool DigitoJogador;
public GameObject[] objetosErro, objetosCertos;
public int PrimeiroNumero;
public int SegundoNumero;
public char[] operators = {'+' , '*' , '-' , '/'};
public int resultado;
private string ShowOP;
public TextMeshProUGUI textDisplay;
// Start is called before the first frame update
void Start()
{
Texto.SetActive(true);
nextSceneLoad = SceneManager.GetActiveScene().buildIndex + 1;
for (int i = 0; i < objetosCertos.Length; i++)
{
objetosErro[i].SetActive(false);
objetosCertos[i].SetActive(true);
}
RandomOperation();
}
// Update is called once per frame
void Update()
{
string resultado2 = resultado.ToString();
if(resultado2 == texto.text && DigitoJogador == true){
timer += Time.deltaTime;
for (int i = 0; i < objetosCertos.Length; i++)
{
objetosErro[i].SetActive(false);
objetosCertos[i].SetActive(true);
}
if(timer >= 2){
SceneManager.LoadScene(nextSceneLoad);
}
}else if(resultado2 != texto.text && DigitoJogador == true){
timer += Time.deltaTime;
for (int i = 0; i < objetosErro.Length; i++)
{
objetosErro[i].SetActive(true);
objetosCertos[i].SetActive(false);
}
if(timer >= 3)
{
Texto.SetActive(true);
RandomOperation();
}
}
}
public void AddDigito(string digito){
Texto.SetActive(false);
if(texto.text.Length < 2){
texto.text = texto.text + digito;
}
DigitoJogador = true;
}
public void RandomOperation(){
var op = operators[Random.Range(0, operators.Length)];
timer = 0;
DigitoJogador = false;
SortearNovosValores:
PrimeiroNumero = Random.Range (0,9);
SegundoNumero = Random.Range (0,9);
switch(op){
case '+':
resultado = PrimeiroNumero + SegundoNumero;
break;
case 'x':
resultado = PrimeiroNumero * SegundoNumero;
break;
case '-':
resultado = PrimeiroNumero - SegundoNumero;
if (resultado < 0){
goto SortearNovosValores;
}
break;
case '÷':
if (PrimeiroNumero < SegundoNumero || SegundoNumero == 0){
goto SortearNovosValores;
}
else if (PrimeiroNumero % SegundoNumero == 0){
resultado = PrimeiroNumero / SegundoNumero;
}else{
goto SortearNovosValores;
}
break;
}
ShowOP = PrimeiroNumero.ToString() + " " + op.ToString() + " " + SegundoNumero.ToString() + " = ";
textDisplay.text = ShowOP;
}
}
lucaspoiob- Membro
- PONTOS : 2852
REPUTAÇÃO : 0
Respeito as regras :
Re: Finalização Calculadora, fazer com que o jogador tente novamente
- Código:
[size=14]using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class BotaoTexto : MonoBehaviour
{
public TextMeshProUGUI texto;
public GameObject TextoInterrogação;
public float timer;
private int nextSceneLoad;
public bool DigitoJogador;
public GameObject[] objetosErro, objetosCertos;
public int PrimeiroNumero;
public int SegundoNumero;
public char[] operators = {'+' , '*' , '-' , '/'};
public int resultado;
private string ShowOP;
public TextMeshProUGUI textDisplay;
// Start is called before the first frame update
void Start()
{
TextoInterrogação.SetActive(true);
nextSceneLoad = SceneManager.GetActiveScene().buildIndex + 1;
for (int i = 0; i < objetosCertos.Length; i++)
{
objetosErro[i].SetActive(false);
objetosCertos[i].SetActive(true);
}
RandomOperation();
}
// Update is called once per frame
void Update()
{
string resultado2 = resultado.ToString();
if(resultado2 == texto.text && DigitoJogador == true){
timer += Time.deltaTime;
for (int i = 0; i < objetosCertos.Length; i++)
{
objetosErro[i].SetActive(false);
objetosCertos[i].SetActive(true);
}
if(timer >= 2){
SceneManager.LoadScene(nextSceneLoad);
}
}else if(resultado2 != texto.text && DigitoJogador == true){
timer += Time.deltaTime;
for (int i = 0; i < objetosErro.Length; i++)
{
objetosErro[i].SetActive(true);
objetosCertos[i].SetActive(false);
}
if(timer >= 3)
{
TextoInterrogação.SetActive(true);
RandomOperation();
}
}
}
public void AddDigito(string digito){
TextoInterrogação.SetActive(false);
if(texto.text.Length < 2){
texto.text = texto.text + digito;
}
DigitoJogador = true;
}
public void RandomOperation(){
var op = operators[Random.Range(0, operators.Length)];
timer = 0;
DigitoJogador = false;
SortearNovosValores:
PrimeiroNumero = Random.Range (0,9);
SegundoNumero = Random.Range (0,9);
switch(op){
case '+':
resultado = PrimeiroNumero + SegundoNumero;
break;
case 'x':
resultado = PrimeiroNumero * SegundoNumero;
break;
case '-':
resultado = PrimeiroNumero - SegundoNumero;
if (resultado < 0){
goto SortearNovosValores;
}
break;
case '÷':
if (PrimeiroNumero < SegundoNumero || SegundoNumero == 0){
goto SortearNovosValores;
}
else if (PrimeiroNumero % SegundoNumero == 0){
resultado = PrimeiroNumero / SegundoNumero;
}else{
goto SortearNovosValores;
}
break;
}
ShowOP = PrimeiroNumero.ToString() + " " + op.ToString() + " " + SegundoNumero.ToString() + " = ";
textDisplay.text = ShowOP;
}
}
[/size]
lucaspoiob- Membro
- PONTOS : 2852
REPUTAÇÃO : 0
Respeito as regras :
Tópicos semelhantes
» Como fazer o inimigo atirar projétil na direção do jogador? por favor
» Como fazer a câmera parar de seguir a altura do pulo do jogador no script SmoothFollow dos Assets Standards da Unity ?
» Como fazer um objeto sumir e aparecer novamente em loop (ficar piscando) ?
» Inimigp Olha o Jogador e Surgi um Objeto na Direção do Jogador
» Como fazer um analogico para rotaciona a camera do jogador? android
» Como fazer a câmera parar de seguir a altura do pulo do jogador no script SmoothFollow dos Assets Standards da Unity ?
» Como fazer um objeto sumir e aparecer novamente em loop (ficar piscando) ?
» Inimigp Olha o Jogador e Surgi um Objeto na Direção do Jogador
» Como fazer um analogico para rotaciona a camera do jogador? android
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos