jogo 2D quiz game
5 participantes
Página 1 de 1
jogo 2D quiz game
ola...gostaria da ajuda de voces para implementar no meu jogo uma forma de colocar uma sinalização pra identificar se a pessoa clicou na resposta certa ou não...obg a antecipado a quem responder... ^^ e gostaria de dicas tambem de todos...e ajuda pf obg
gui-tk9- Membro
- PONTOS : 3377
REPUTAÇÃO : 1
Respeito as regras :
Re: jogo 2D quiz game
De uma olhada
RenanMSV- Instrutor
- PONTOS : 4485
REPUTAÇÃO : 356
Áreas de atuação : Programação em C#, PHP. SQL, JavaScript (Web)
Respeito as regras :
Re: jogo 2D quiz game
eu já olheri...ele não explica como fazer oque perguntei...quero saber na hora de clicar na resposta dar um sinal ao jogador seja visual ou sonoro de que ele errou ou acertou a questão....entende? esse eh o script...
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; // armazena todas as perguntas
public string[] alternativaA; // armazena todas as alternativas A
public string[] alternativaB; // armazena todas as alternativas B
public string[] alternativaC; // armazena todas as alternativas C
public string[] alternativaD; // armazena todas as alternativas D
public string[] corretas; // armazena as alternativas 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 = 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 = "Rspondendo " + (+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 = "Rspondendo " + (+idPergunta + 1).ToString () + " de " + questoes.ToString () + " perguntas.";
}
else
{
// oque fazer se terminar as perguntas
media = 10 *(acertos / questoes); // calcula a media com base no percentual de acertos
notaFinal = Mathf.RoundToInt(media); // arredonda a media para o inteiro, seguindo a regra da matematica.
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");
}
}
}
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; // armazena todas as perguntas
public string[] alternativaA; // armazena todas as alternativas A
public string[] alternativaB; // armazena todas as alternativas B
public string[] alternativaC; // armazena todas as alternativas C
public string[] alternativaD; // armazena todas as alternativas D
public string[] corretas; // armazena as alternativas 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 = 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 = "Rspondendo " + (+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 = "Rspondendo " + (+idPergunta + 1).ToString () + " de " + questoes.ToString () + " perguntas.";
}
else
{
// oque fazer se terminar as perguntas
media = 10 *(acertos / questoes); // calcula a media com base no percentual de acertos
notaFinal = Mathf.RoundToInt(media); // arredonda a media para o inteiro, seguindo a regra da matematica.
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");
}
}
}
gui-tk9- Membro
- PONTOS : 3377
REPUTAÇÃO : 1
Respeito as regras :
Re: jogo 2D quiz game
Amigo teria como você falar melhor do game?
Por exemplo:
O que fazes para gerar as perguntas?
Como que sabes se a resposta esta certa ou errada?
com isso posso tentar te ajudar.
Por exemplo:
O que fazes para gerar as perguntas?
Como que sabes se a resposta esta certa ou errada?
com isso posso tentar te ajudar.
Re: jogo 2D quiz game
public string[] perguntas; // armazena todas as perguntas
public string[] alternativaA; // armazena todas as alternativas A
public string[] alternativaB; // armazena todas as alternativas B
public string[] alternativaC; // armazena todas as alternativas C
public string[] alternativaD; // armazena todas as alternativas D
public string[] corretas; // armazena as alternativas corretas
eu utilizo "[]" (não sei a pronuncia) pra armazenar as perguntas e respostas... depos disso armazeno as respostas corretas utilizando o mesmo método é so copiar e colar dentro da aba corretas as respostas cetras ai
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))
{
ai depois eh so fazer o jogo procurar saberse a resposta clicada eh a correta ou naão..mas utilizei if pra poupar tempo de procura e melhorar a resposta do game...pra que na hora que ele ache a resposta correta ele pare de procurar e passe pras próxima pergunta...
public string[] alternativaA; // armazena todas as alternativas A
public string[] alternativaB; // armazena todas as alternativas B
public string[] alternativaC; // armazena todas as alternativas C
public string[] alternativaD; // armazena todas as alternativas D
public string[] corretas; // armazena as alternativas corretas
eu utilizo "[]" (não sei a pronuncia) pra armazenar as perguntas e respostas... depos disso armazeno as respostas corretas utilizando o mesmo método é so copiar e colar dentro da aba corretas as respostas cetras ai
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))
{
ai depois eh so fazer o jogo procurar saberse a resposta clicada eh a correta ou naão..mas utilizei if pra poupar tempo de procura e melhorar a resposta do game...pra que na hora que ele ache a resposta correta ele pare de procurar e passe pras próxima pergunta...
gui-tk9- Membro
- PONTOS : 3377
REPUTAÇÃO : 1
Respeito as regras :
Re: jogo 2D quiz game
gui-tk9 escreveu:...eu utilizo "[]" (não sei a pronuncia)...
Array.
Suponhamos que voce iria mostrar um som de resposta correta ao acertar e um som de resposta incorreta ao errar.
Voce deve primeiro de tudo colocar na aba inspector 2 sons. Coloque o script abaixo no começo do seu script e irá aparecer na aba inspector 2 lugares pra por os sons. Basta arrasta-los corretamente. O som de acerto no local escrito acerto e vice e versa.
- Código:
public AudioClip acerto,erro; // sons de acerto e erro
Abaixo utilizei um pequeno pedaço do seu script
- Código:
if(alternativaB[idPergunta] == corretas[idPergunta]){
acertos += 1;
TocarSom(true); // Adicionei isto. Aqui voce manda o script realizar um metodo que voce vai criar logo abaixo. Veja que voce tambem manda uma variavel booleana que sera usada pelo metodo para saber qual som tocar. Ai eh simples se acertar a pergunta adciona 1 ponto e executa o metodo que neste caso vai tocar o som de acerto.
}else{
TocarSom(false); // Caso errou ele nao vai adicionar um ponto mas vai executar o metodo que neste caso vai tocar o som de erro.
}
Voce pode criar métodos para usar em varios momentos. Configura-los e tudo mais. Recomendo ver a playlist do Marcos em que ele ensina programação em C# no Unity https://www.youtube.com/watch?v=FPBoOnan298&list=PL0TaCOFAHoO-Wpq6FuN9gwr7WAdPEKUnh
Abaixo você vê o método criado. Ele deve ser colocado fora de qualquer outro metodo (Start,Update,OnGUI..etc). Perceba que o método requer uma booleana em sua chamada. É ela quem vai dizer para ele qual som tocar. Usei boolana pois são só 2 tipos de som. Se tivessemos mais eu poderia usar um int,string... Portanto se voce mandar true na chamada vai executar o som de acerto, se nao, vai executar som de erro. Atache um AudioSource ao objeto que recebe este script para o som poder ser tocado.
- Código:
void TocarSom(bool som){ // método requerindo uma variavel booleana
if(som){
// tocar som verdadeiro
gameObject.GetComponent<AudioSource>().PlayOneShot(acerto); // manda tocar 1 vez o audio de acerto
}
else{
// tocar som falso
gameObject.GetComponent<AudioSource>().PlayOneShot(erro); // manda tocar 1 vez o audio de erro
}
}
RenanMSV- Instrutor
- PONTOS : 4485
REPUTAÇÃO : 356
Áreas de atuação : Programação em C#, PHP. SQL, JavaScript (Web)
Respeito as regras :
Re: jogo 2D quiz game
Olá..Como seria possível aplicar neste código uma maneira de, quando clicamos na resposta ele, para além de tocar o som como foi explicado, mudar a cor do botão com a resposta certa para verde e, se a resposta dada estiver errada, mudar esse para vermelho.
Agradeço desde já a ajuda.
Agradeço desde já a ajuda.
MRFM31- Iniciante
- PONTOS : 2581
REPUTAÇÃO : 0
Respeito as regras :
Re: jogo 2D quiz game
muito obrigado, amigo! voce me ajudou indiretamente, consegui implementar no meu game essa mecanica de sons a partir das alternativas corretas e erraadaas
caducrespo- Iniciante
- PONTOS : 1561
REPUTAÇÃO : 0
Respeito as regras :
Tópicos semelhantes
» Rank usando o facebook para JOGO QUIZ
» jogo quiz 2D unity 5...
» Jogo Quiz perguntas aleatórias
» Meu Jogo ta Travando - Quiz Unity 2D
» Alguém me ajuda em meu jogo de quiz aqui ?
» jogo quiz 2D unity 5...
» Jogo Quiz perguntas aleatórias
» Meu Jogo ta Travando - Quiz Unity 2D
» Alguém me ajuda em meu jogo de quiz aqui ?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos