Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D
4 participantes
Página 1 de 1
Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D
O código é este:
- Código:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class responder : MonoBehaviour {
private int idTema;
public Text pergunta;
public Text respostaA;
public Text respostaB;
public Text respostaC;
public Text respostaD;
public Text infoRespostas;
public string[] perguntas;
public string[] alternativaA;
public string[] alternativaB;
public string[] alternativaC;
public string[] alternativaD;
public string[] corretas;
private int idPergunta;
private float acertos;
private float questoes;
private float media;
private int notaFinal;
private object usedValues;
// Use this for initialization
void Start() {
idTema = PlayerPrefs.GetInt("idTema");
idPergunta = 0;
questoes = perguntas.Length;
pergunta.text = perguntas[idPergunta];
respostaA.text = alternativaA[idPergunta];
respostaB.text = alternativaB[idPergunta];
respostaC.text = alternativaC[idPergunta];
respostaD.text = alternativaD[idPergunta];
infoRespostas.text = "Respondendo " + (idPergunta + 1).ToString() + " de " + questoes.ToString() + " perguntas.";
}
public void resposta(string alternativa)
{
if (alternativa == "A")
{
if (alternativaA[idPergunta] == corretas[idPergunta])
{
acertos += 1;
}
}
else if (alternativa == "B")
{
if (alternativaB[idPergunta] == corretas[idPergunta])
{
acertos += 1;
}
}
else if (alternativa == "C")
{
if (alternativaC[idPergunta] == corretas[idPergunta])
{
acertos += 1;
}
}
else if (alternativa == "D")
{
if (alternativaD[idPergunta] == corretas[idPergunta])
{
acertos += 1;
}
}
proximaPergunta();
}
void proximaPergunta()
{
idPergunta += 1;
if(idPergunta <= (questoes-1))
{
pergunta.text = perguntas[idPergunta];
respostaA.text = alternativaA[idPergunta];
respostaB.text = alternativaB[idPergunta];
respostaC.text = alternativaC[idPergunta];
respostaD.text = alternativaD[idPergunta];
infoRespostas.text = "Respondendo " + (idPergunta + 1).ToString() + " de " + questoes.ToString() + " perguntas.";
}
else
{
media = 10 * (acertos / questoes);
notaFinal = Mathf.RoundToInt(media);
if (notaFinal > PlayerPrefs.GetInt("notaFinal"+idTema.ToString()))
{
PlayerPrefs.SetInt("notaFinal"+idTema.ToString(), notaFinal);
PlayerPrefs.SetInt("acertos"+idTema.ToString(), (int) acertos);
}
PlayerPrefs.SetInt("notaFinalTemp" + idTema.ToString(), notaFinal);
PlayerPrefs.SetInt("acertosTemp" + idTema.ToString(), (int)acertos);
Application.LoadLevel("notaFinal");
}
}
}
Akuma97- Membro
- PONTOS : 2129
REPUTAÇÃO : 1
Respeito as regras :
Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D
Isso é um tutorial? Uma dúvida?
Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D
MarcosSchultz escreveu:Isso é um tutorial? Uma dúvida?
Está em "Duvidas em geral", então sim, é uma duvida. Não sei como fazer isto...
Akuma97- Membro
- PONTOS : 2129
REPUTAÇÃO : 1
Respeito as regras :
Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D
Do jeito que está, fica dificil implementar uma aleatoriedade, recomendo mudar a arquitetura do código.
Dê uma olhada nesse tutorial, talvez possa te ajudar: http://compilemosfacil.blogspot.com/2018/01/desenvolvendo-um-jogo-de-quiz-com.html
Dê uma olhada nesse tutorial, talvez possa te ajudar: http://compilemosfacil.blogspot.com/2018/01/desenvolvendo-um-jogo-de-quiz-com.html
Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D
pelo jeito, vc precisa aleatorizar a pergunta, porem, não poderia repetir, ao meu entender no código o idpergunta é oque faz cada questão.
se utilizar um idpergunta = random.range(0,200); aleatorizaria de 0 a 200, porem a mesma pergunta poderia aparecer diversas vezes.
oque poderia ser feito é:
criar um grupo de bool - public bool[] Respondidas.
assim que uma bool for respondida deixar true.
depois para trocar as perguntas
idpergunta = random.range(0,perguntas.lenght); // isto pega o max de perguntas possíveis
depois disso vc checa pra ver se já foi respondida
if(Respondidas[idpergunta] == true){
proximaPergunta();
return; // para retornar a função
}
isto sim seria aleatório a posição das perguntas, e elas não se repetiriam.
se utilizar um idpergunta = random.range(0,200); aleatorizaria de 0 a 200, porem a mesma pergunta poderia aparecer diversas vezes.
oque poderia ser feito é:
criar um grupo de bool - public bool[] Respondidas.
assim que uma bool for respondida deixar true.
depois para trocar as perguntas
idpergunta = random.range(0,perguntas.lenght); // isto pega o max de perguntas possíveis
depois disso vc checa pra ver se já foi respondida
if(Respondidas[idpergunta] == true){
proximaPergunta();
return; // para retornar a função
}
isto sim seria aleatório a posição das perguntas, e elas não se repetiriam.
Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D
luiz12345 escreveu:pelo jeito, vc precisa aleatorizar a pergunta, porem, não poderia repetir, ao meu entender no código o idpergunta é oque faz cada questão.
se utilizar um idpergunta = random.range(0,200); aleatorizaria de 0 a 200, porem a mesma pergunta poderia aparecer diversas vezes.
oque poderia ser feito é:
criar um grupo de bool - public bool[] Respondidas.
assim que uma bool for respondida deixar true.
depois para trocar as perguntas
idpergunta = random.range(0,perguntas.lenght); // isto pega o max de perguntas possíveis
depois disso vc checa pra ver se já foi respondida
if(Respondidas[idpergunta] == true){
proximaPergunta();
return; // para retornar a função
}
isto sim seria aleatório a posição das perguntas, e elas não se repetiriam.
Fiz assim:
- Código:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class responder : MonoBehaviour {
private int idTema;
public bool[] Respondidas.
public Text pergunta;
public Text respostaA;
public Text respostaB;
public Text respostaC;
public Text respostaD;
public Text infoRespostas;
public string[] perguntas;
public string[] alternativaA;
public string[] alternativaB;
public string[] alternativaC;
public string[] alternativaD;
public string[] corretas;
private int idPergunta;
private float acertos;
private float questoes;
private float media;
private int notaFinal;
// Use this for initialization
void Start() {
idTema = PlayerPrefs.GetInt("idTema");
idPergunta = random.range(0, perguntas.lenght); // isto pega o max de perguntas possíveis
questoes = perguntas.Length;
pergunta.text = perguntas[idPergunta];
respostaA.text = alternativaA[idPergunta];
respostaB.text = alternativaB[idPergunta];
respostaC.text = alternativaC[idPergunta];
respostaD.text = alternativaD[idPergunta];
infoRespostas.text = "Respondendo " + (idPergunta + 1).ToString() + " de " + questoes.ToString() + " perguntas.";
}
public void resposta(string alternativa)
{
if (alternativa == "A")
{
if (alternativaA[idPergunta] == corretas[idPergunta])
{
acertos += 1;
}
}
else if (alternativa == "B")
{
if (alternativaB[idPergunta] == corretas[idPergunta])
{
acertos += 1;
}
}
else if (alternativa == "C")
{
if (alternativaC[idPergunta] == corretas[idPergunta])
{
acertos += 1;
}
}
else if (alternativa == "D")
{
if (alternativaD[idPergunta] == corretas[idPergunta])
{
acertos += 1;
}
}
proximaPergunta();
}
void proximaPergunta()
{
idPergunta += 1;
if(idPergunta <= (questoes-1))
{
pergunta.text = perguntas[idPergunta];
respostaA.text = alternativaA[idPergunta];
respostaB.text = alternativaB[idPergunta];
respostaC.text = alternativaC[idPergunta];
respostaD.text = alternativaD[idPergunta];
infoRespostas.text = "Respondendo " + (idPergunta + 1).ToString() + " de " + questoes.ToString() + " perguntas.";
}
else
{
media = 10 * (acertos / questoes);
notaFinal = Mathf.RoundToInt(media);
if (notaFinal > PlayerPrefs.GetInt("notaFinal"+idTema.ToString()))
{
PlayerPrefs.SetInt("notaFinal"+idTema.ToString(), notaFinal);
PlayerPrefs.SetInt("acertos"+idTema.ToString(), (int) acertos);
}
PlayerPrefs.SetInt("notaFinalTemp" + idTema.ToString(), notaFinal);
PlayerPrefs.SetInt("acertosTemp" + idTema.ToString(), (int)acertos);
Application.LoadLevel("notaFinal");
}
}
if(Respondidas[idpergunta] == true){
proximaPergunta();
return; // para retornar a função
}
}
Porém deu este erro: "Unedxpected symbol "public" in class, struct, or interface member declaration". Aparentemente foi no "public Text pergunta;"
Akuma97- Membro
- PONTOS : 2129
REPUTAÇÃO : 1
Respeito as regras :
Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D
Eu consertei algumas coisas no código, mas ainda da erro (principalmente no "if").
public bool[] Respondidas;
idPergunta = Random.Range (0, perguntas.Lenght); // isto pega o max de perguntas possíveis
if(Respondidas[idPergunta] == true){
proximaPergunta();
return; // para retornar a função
}
public bool[] Respondidas;
idPergunta = Random.Range (0, perguntas.Lenght); // isto pega o max de perguntas possíveis
if(Respondidas[idPergunta] == true){
proximaPergunta();
return; // para retornar a função
}
Akuma97- Membro
- PONTOS : 2129
REPUTAÇÃO : 1
Respeito as regras :
Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D
se o erro for quando da o play, deve ser porque o numero de bool respondidas n é igual ao numero de perguntas. tipo existem 20 perguntas mais n colocou nenhuma bool.
se o erro for no código deve ser o local onde esta chamando este if(), ou então na parte onde ele invoca a própria void.
um jeito seria em vez de void, colocar no update, pois é necessário checar varias vezes, pois se existirem 20 perguntas, e ele já respondeu 19, vai ter uma chance de 5% do script pegar a pergunta restante, ou seja talvez ele faça essa verificação mais de 50x
para colocar no update:
1-crie uma bool normal com um nome tipo
proximaPergunta.
2-na void update, cheque se ela esta true. if(proximaPergunta){}
3-remova a void proximaPergunta, e coloque ela inteira dentro do if que você criou na update.
4- no final do if() com todos os parâmetros que antes estava na void, adicione: proximaPergunta = false;
5-adicione o que eu havia dito antes.
idPergunta = Random.Range (0, perguntas.Lenght); // lembre-se de add isto na parte inicial do if
if(Respondidas[idPergunta] == true){ // note que n é necessário deixar true o proximaPergunta.
return;
}
aqui em baixo o código da void.
se o erro for no código deve ser o local onde esta chamando este if(), ou então na parte onde ele invoca a própria void.
um jeito seria em vez de void, colocar no update, pois é necessário checar varias vezes, pois se existirem 20 perguntas, e ele já respondeu 19, vai ter uma chance de 5% do script pegar a pergunta restante, ou seja talvez ele faça essa verificação mais de 50x
para colocar no update:
1-crie uma bool normal com um nome tipo
proximaPergunta.
2-na void update, cheque se ela esta true. if(proximaPergunta){}
3-remova a void proximaPergunta, e coloque ela inteira dentro do if que você criou na update.
4- no final do if() com todos os parâmetros que antes estava na void, adicione: proximaPergunta = false;
5-adicione o que eu havia dito antes.
idPergunta = Random.Range (0, perguntas.Lenght); // lembre-se de add isto na parte inicial do if
if(Respondidas[idPergunta] == true){ // note que n é necessário deixar true o proximaPergunta.
return;
}
aqui em baixo o código da void.
Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D
Eu coloquei 10 perguntas em cada fase, mas algumas eu colocarei mais perguntas e outras menos. O erro foi no código não na hora do play.
Eu coloquei o if no void proximaPergunta e funcionou. Ficou aleatório. Mas quando clica, a próxima pergunta não vai, da erro.
Eu coloquei o if no void proximaPergunta e funcionou. Ficou aleatório. Mas quando clica, a próxima pergunta não vai, da erro.
Akuma97- Membro
- PONTOS : 2129
REPUTAÇÃO : 1
Respeito as regras :
Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D
e outro erro foi o "Lenght" que na verdade é "Length", mas já consertei.
Akuma97- Membro
- PONTOS : 2129
REPUTAÇÃO : 1
Respeito as regras :
Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D
Ficou assim:
- Código:
void proximaPergunta()
{
idPergunta += 1;
if (Respondidas[idPergunta] == true)
{
proximaPergunta();
return; // para retornar a função
}
if (idPergunta <= (questoes-1))
{
pergunta.text = perguntas[idPergunta];
respostaA.text = alternativaA[idPergunta];
respostaB.text = alternativaB[idPergunta];
respostaC.text = alternativaC[idPergunta];
respostaD.text = alternativaD[idPergunta];
infoRespostas.text = "Respondendo " + (idPergunta + 1).ToString() + " de " + questoes.ToString() + " perguntas.";
}
else
{
media = 10 * (acertos / questoes);
notaFinal = Mathf.RoundToInt(media);
if (notaFinal > PlayerPrefs.GetInt("notaFinal"+idTema.ToString()))
{
PlayerPrefs.SetInt("notaFinal"+idTema.ToString(), notaFinal);
PlayerPrefs.SetInt("acertos"+idTema.ToString(), (int) acertos);
}
PlayerPrefs.SetInt("notaFinalTemp" + idTema.ToString(), notaFinal);
PlayerPrefs.SetInt("acertosTemp" + idTema.ToString(), (int)acertos);
Application.LoadLevel("notaFinal");
}
}
Akuma97- Membro
- PONTOS : 2129
REPUTAÇÃO : 1
Respeito as regras :
Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D
Diz que o erro é em if (Respondidas[idPergunta] == true)
Akuma97- Membro
- PONTOS : 2129
REPUTAÇÃO : 1
Respeito as regras :
Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D
Apaguei está parte do código (abaixo) e funcionou. Por enquanto as perguntas não estão repetidas e quando clica ela vai pra próxima pergunta.
- Código:
if (Respondidas[idPergunta] == true)[size=14][/size] {[size=14][/size] proximaPergunta();[size=14][/size] return; // para retornar a função[size=14][/size] }
- Código:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class responder : MonoBehaviour {
private int idTema;
public bool[] Respondidas;
public Text pergunta;
public Text respostaA;
public Text respostaB;
public Text respostaC;
public Text respostaD;
public Text infoRespostas;
public string[] perguntas;
public string[] alternativaA;
public string[] alternativaB;
public string[] alternativaC;
public string[] alternativaD;
public string[] corretas;
private int idPergunta;
private float acertos;
private float questoes;
private float media;
private int notaFinal;
// Use this for initialization
void Start() {
idTema = PlayerPrefs.GetInt("idTema");
idPergunta = Random.Range(0, perguntas.Length); // isto pega o max de perguntas possíveis
questoes = perguntas.Length;
pergunta.text = perguntas[idPergunta];
respostaA.text = alternativaA[idPergunta];
respostaB.text = alternativaB[idPergunta];
respostaC.text = alternativaC[idPergunta];
respostaD.text = alternativaD[idPergunta];
infoRespostas.text = "Respondendo " + (idPergunta + 1).ToString() + " de " + questoes.ToString() + " perguntas.";
}
public void resposta(string alternativa)
{
if (alternativa == "A")
{
if (alternativaA[idPergunta] == corretas[idPergunta])
{
acertos += 1;
}
}
else if (alternativa == "B")
{
if (alternativaB[idPergunta] == corretas[idPergunta])
{
acertos += 1;
}
}
else if (alternativa == "C")
{
if (alternativaC[idPergunta] == corretas[idPergunta])
{
acertos += 1;
}
}
else if (alternativa == "D")
{
if (alternativaD[idPergunta] == corretas[idPergunta])
{
acertos += 1;
}
}
proximaPergunta();
}
void proximaPergunta()
{
idPergunta += 1;
if (idPergunta <= (questoes-1))
{
pergunta.text = perguntas[idPergunta];
respostaA.text = alternativaA[idPergunta];
respostaB.text = alternativaB[idPergunta];
respostaC.text = alternativaC[idPergunta];
respostaD.text = alternativaD[idPergunta];
infoRespostas.text = "Respondendo " + (idPergunta + 1).ToString() + " de " + questoes.ToString() + " perguntas.";
}
else
{
media = 10 * (acertos / questoes);
notaFinal = Mathf.RoundToInt(media);
if (notaFinal > PlayerPrefs.GetInt("notaFinal"+idTema.ToString()))
{
PlayerPrefs.SetInt("notaFinal"+idTema.ToString(), notaFinal);
PlayerPrefs.SetInt("acertos"+idTema.ToString(), (int) acertos);
}
PlayerPrefs.SetInt("notaFinalTemp" + idTema.ToString(), notaFinal);
PlayerPrefs.SetInt("acertosTemp" + idTema.ToString(), (int)acertos);
Application.LoadLevel("notaFinal");
}
}
}
Akuma97- Membro
- PONTOS : 2129
REPUTAÇÃO : 1
Respeito as regras :
Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D
Só que na próxima pergunta não fica aleatório...
Akuma97- Membro
- PONTOS : 2129
REPUTAÇÃO : 1
Respeito as regras :
Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D
tenta deixar aquela parte e envia aqui o erro que da, e diz se é durante o jogo(quando da play na cena), ou se ele da o erro todo o tempo.
Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D
luiz12345 escreveu:tenta deixar aquela parte e envia aqui o erro que da, e diz se é durante o jogo(quando da play na cena), ou se ele da o erro todo o tempo.
Dá erro quando clico na pergunta (ele não vai pra proxima pergunta) e fala isso "IndexOutofRangeException: Array index is out of range". O erro diz que é no if (Respondidas[idPergunta]);
Akuma97- Membro
- PONTOS : 2129
REPUTAÇÃO : 1
Respeito as regras :
Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D
me disseram pra usar este código (abaixo), mas não sei onde colocar ele:
- Código:
Debug.Log("The value is " + idPergunta.ToString());
Akuma97- Membro
- PONTOS : 2129
REPUTAÇÃO : 1
Respeito as regras :
Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D
o numero de bools no inspector é o mesmo que o numero de perguntas possíveis?
quando você criou o Respondidas[] foi adicionado no inspector uma área de bool, porem você antes precisa selecionar a quantidade.
caso não queria fazer isto, tenta adicionar isto antes do if():
Respondidas = new bool[perguntas.Length];
quando você criou o Respondidas[] foi adicionado no inspector uma área de bool, porem você antes precisa selecionar a quantidade.
caso não queria fazer isto, tenta adicionar isto antes do if():
Respondidas = new bool[perguntas.Length];
Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D
opa, oque eu disse antes está errado pois como isto será checado de novo, ira resetar todos os valores, tendo efeito nulo o if(). Ou seja, não coloque antes do if(), coloque em primeiro na void update.
Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D
Void Start* to meio enrolado ;-;luiz12345 escreveu:opa, oque eu disse antes está errado pois como isto será checado de novo, ira resetar todos os valores, tendo efeito nulo o if(). Ou seja, não coloque antes do if(), coloque em primeiro na void update.
Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D
luiz12345 escreveu:Void Start* to meio enrolado ;-;luiz12345 escreveu:opa, oque eu disse antes está errado pois como isto será checado de novo, ira resetar todos os valores, tendo efeito nulo o if(). Ou seja, não coloque antes do if(), coloque em primeiro na void update.
Agora mano, funcionou. Valeu rsrsrs
Ficou assim:
- Código:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class responder : MonoBehaviour {
private int idTema;
public bool[] Respondidas;
public Text pergunta;
public Text respostaA;
public Text respostaB;
public Text respostaC;
public Text respostaD;
public Text infoRespostas;
public string[] perguntas;
public string[] alternativaA;
public string[] alternativaB;
public string[] alternativaC;
public string[] alternativaD;
public string[] corretas;
private int idPergunta;
private float acertos;
private float questoes;
private float media;
private int notaFinal;
// Use this for initialization
void Start() {
idTema = PlayerPrefs.GetInt("idTema");
idPergunta = Random.Range(0, perguntas.Length); // isto pega o max de perguntas possíveis
questoes = perguntas.Length;
Respondidas = new bool[perguntas.Length];
pergunta.text = perguntas[idPergunta];
respostaA.text = alternativaA[idPergunta];
respostaB.text = alternativaB[idPergunta];
respostaC.text = alternativaC[idPergunta];
respostaD.text = alternativaD[idPergunta];
infoRespostas.text = "Respondendo " + (idPergunta + 1).ToString() + " de " + questoes.ToString() + " perguntas.";
}
public void resposta(string alternativa)
{
if (alternativa == "A")
{
if (alternativaA[idPergunta] == corretas[idPergunta])
{
acertos += 1;
}
}
else if (alternativa == "B")
{
if (alternativaB[idPergunta] == corretas[idPergunta])
{
acertos += 1;
}
}
else if (alternativa == "C")
{
if (alternativaC[idPergunta] == corretas[idPergunta])
{
acertos += 1;
}
}
else if (alternativa == "D")
{
if (alternativaD[idPergunta] == corretas[idPergunta])
{
acertos += 1;
}
}
proximaPergunta();
}
void proximaPergunta()
{
idPergunta += 1;
Debug.Log("The value is " + idPergunta.ToString());
if (Respondidas[idPergunta])
{
proximaPergunta();
return; // para retornar a função
}
if (idPergunta <= (questoes-1))
{
pergunta.text = perguntas[idPergunta];
respostaA.text = alternativaA[idPergunta];
respostaB.text = alternativaB[idPergunta];
respostaC.text = alternativaC[idPergunta];
respostaD.text = alternativaD[idPergunta];
infoRespostas.text = "Respondendo " + (idPergunta + 1).ToString() + " de " + questoes.ToString() + " perguntas.";
}
else
{
media = 10 * (acertos / questoes);
notaFinal = Mathf.RoundToInt(media);
if (notaFinal > PlayerPrefs.GetInt("notaFinal"+idTema.ToString()))
{
PlayerPrefs.SetInt("notaFinal"+idTema.ToString(), notaFinal);
PlayerPrefs.SetInt("acertos"+idTema.ToString(), (int) acertos);
}
PlayerPrefs.SetInt("notaFinalTemp" + idTema.ToString(), notaFinal);
PlayerPrefs.SetInt("acertosTemp" + idTema.ToString(), (int)acertos);
Application.LoadLevel("notaFinal");
}
}
}
Akuma97- Membro
- PONTOS : 2129
REPUTAÇÃO : 1
Respeito as regras :
Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D
Porém testando aqui deu erro de novo. Eu respondo algumas perguntas e depois da o mesmo "IndexOutofRangeException: Array index is out of range". O erro diz que é no if (Respondidas[idPergunta]);
Akuma97- Membro
- PONTOS : 2129
REPUTAÇÃO : 1
Respeito as regras :
Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D
tente substituir o:
Respondidas = new bool[perguntas.Length];
Por:
Respondidas = new bool[perguntas.Length + 1];
isso buga porque em certas parte ele conta o zero, em outras não.
se der mais erros avise
Respondidas = new bool[perguntas.Length];
Por:
Respondidas = new bool[perguntas.Length + 1];
isso buga porque em certas parte ele conta o zero, em outras não.
se der mais erros avise
Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D
luiz12345 escreveu:tente substituir o:
Respondidas = new bool[perguntas.Length];
Por:
Respondidas = new bool[perguntas.Length + 1];
isso buga porque em certas parte ele conta o zero, em outras não.
se der mais erros avise
Isso fez com que ele respondesse 1 ou 2 perguntas e depois finalizasse o questionário, sendo que são 10 perguntas.
Akuma97- Membro
- PONTOS : 2129
REPUTAÇÃO : 1
Respeito as regras :
Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D
Tentei postar uma print, mas o fórum não permite. Então vou tentar explicar...
Quando eu clicava na pergunta aparecia isto "The value is 8 UnityEngine.Debug:Log(Object)responder:proximaPergunta()"; quando chegava no "The value is 9", ele dava erro "IndexOutofRangeException: Array index is out of range".
Então eu removi o "Debug.Log("The value is " + idPergunta.ToString());" e funcionou normalmente. Porém, quando chegava na ultima pergunta ele não ia para a nota final, ele dava de novo o erro "IndexOutofRangeException: Array index is out of range".
Quando eu clicava na pergunta aparecia isto "The value is 8 UnityEngine.Debug:Log(Object)responder:proximaPergunta()"; quando chegava no "The value is 9", ele dava erro "IndexOutofRangeException: Array index is out of range".
Então eu removi o "Debug.Log("The value is " + idPergunta.ToString());" e funcionou normalmente. Porém, quando chegava na ultima pergunta ele não ia para a nota final, ele dava de novo o erro "IndexOutofRangeException: Array index is out of range".
Akuma97- Membro
- PONTOS : 2129
REPUTAÇÃO : 1
Respeito as regras :
Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D
Ele nem começa do começo. Tem horas que ele já vai pra ultima pergunta (são 10 perguntas)...
Akuma97- Membro
- PONTOS : 2129
REPUTAÇÃO : 1
Respeito as regras :
Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D
se for um sistema aleatório então ele pode tanto pegar a primeira, como a quinta, como a ultima pergunta, pois é aleatório, porem se for um sistema onde a primeira e a ultima não são aleatória ai já precisa de mais programação.
Quanto ao erro, eu não entendi muito bem, oque você poderia fazer é criar um outro tópico informando sobre este erro para que mais pessoas possam ajuda-lo.
Quanto ao erro, eu não entendi muito bem, oque você poderia fazer é criar um outro tópico informando sobre este erro para que mais pessoas possam ajuda-lo.
Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D
luiz12345 escreveu:se for um sistema aleatório então ele pode tanto pegar a primeira, como a quinta, como a ultima pergunta, pois é aleatório, porem se for um sistema onde a primeira e a ultima não são aleatória ai já precisa de mais programação.
Quanto ao erro, eu não entendi muito bem, oque você poderia fazer é criar um outro tópico informando sobre este erro para que mais pessoas possam ajuda-lo.
Se quiser te mando o jogo pra você ver e tentar fazer ficar aleatório.
Akuma97- Membro
- PONTOS : 2129
REPUTAÇÃO : 1
Respeito as regras :
Tópicos semelhantes
» JOGO QUIS - Como fazer as perguntas serem aleatórias?
» Jogo Quiz perguntas aleatórias
» Como Fazer quiz com pergunta Aletórias no Unity-5
» como fazer um jogo de fps no unity 5
» [Série] Como fazer um Jogo de RPG na UNITY 3D
» Jogo Quiz perguntas aleatórias
» Como Fazer quiz com pergunta Aletórias no Unity-5
» como fazer um jogo de fps no unity 5
» [Série] Como fazer um Jogo de RPG na UNITY 3D
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos