[RESOLVIDO] Reiniciar o cronometro ao responder uma questão
2 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Reiniciar o cronometro ao responder uma questão
Boa Noite glr!
Estou desenvolvendo um aplicativo de quiz e preciso que ele tenha um cronometro, que se reinicie quando o usuário escolhe alguma das alternativas, seja certa ou errada, ou quando não responde a tempo.
Junto com um colega, conseguimos colocar que o cronometro se reinicie quando a questão não é respondida a tempo, mas não conseguimos fazer com que ele reinicie ao responder alguma alternativa.
alguem poderia nos ajudar no que precisamos adicionar ou reparar para que isso aconteça??
Estou desenvolvendo um aplicativo de quiz e preciso que ele tenha um cronometro, que se reinicie quando o usuário escolhe alguma das alternativas, seja certa ou errada, ou quando não responde a tempo.
Junto com um colega, conseguimos colocar que o cronometro se reinicie quando a questão não é respondida a tempo, mas não conseguimos fazer com que ele reinicie ao responder alguma alternativa.
alguem poderia nos ajudar no que precisamos adicionar ou reparar para que isso aconteça??
- Código:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.SceneManagement;
public class responder : MonoBehaviour {
private int idTema;
public Text pergunta;
public Text respostaA;
public Text respostaB;
public Text respostaC;
public Text respostaD;
public Text respostaE;
public Text infoRespostas;
public string[] perguntas;
public string[] alternativaA;
public string[] alternativaB;
public string[] alternativaC;
public string[] alternativaD;
public string[] alternativaE;
public string[] corretas;
private int idPerguntas;
private float acertos;
private float questoes;
private float soma;
private float notaFinal;
public string NomeDaCena = "cena";
public float velocidade = 1f;
public float tempoPara = 300f;
private float tempoEncerrado = 0f;
void Start() {
idTema = PlayerPrefs.GetInt("idTema");
idPergunta = 0;
questoes = perguntas.Length; // O "Length" contas quantas perguntas estão registradas na plataforma da unity, e devolve essa informação como numero inteiro.
pergunta.text = perguntas[idPergunta];
respostaA.text = alternativaA[idPergunta];
respostaB.text = alternativaB[idPergunta];
respostaC.text = alternativaC[idPergunta];
respostaD.text = alternativaD[idPergunta];
respostaE.text = alternativaE[idPergunta];
infoRespostas.text = "Respondendo "+(idPergunta + 1).ToString() + " de "+questoes.ToString()+" perguntas.";
}
public void resposta(string alternativa){
if(alternativa == "A"){
if(alternativaA[idPergunta] == corretas[idPergunta]){
if(tempoPara >= 270f){
acertos += 100;
}
else if (tempoPara < 270f && tempoPara >= 240f) {
acertos += 80;
}
else if (tempoPara < 240f && tempoPara >= 180f) {
acertos += 60;
}
else if (tempoPara < 1800f && tempoPara >= 120f) {
acertos += 40;
}
else if (tempoPara < 120f && tempoPara >= 60f) {
acertos += 20;
}
else if (tempoPara < 60f && tempoPara >= 1f) {
acertos += 10;
}
}
}
else if(alternativa == "B"){
if(alternativaB[idPergunta] == corretas[idPergunta]){
if(tempoPara >= 270f){
acertos += 100;
}
else if (tempoPara < 270f && tempoPara >= 240f) {
acertos += 80;
}
else if (tempoPara < 240f && tempoPara >= 180f) {
acertos += 60;
}
else if (tempoPara < 1800f && tempoPara >= 120f) {
acertos += 40;
}
else if (tempoPara < 120f && tempoPara >= 60f) {
acertos += 20;
}
else if (tempoPara < 60f && tempoPara >= 1f) {
acertos += 10;
}
}
}
else if(alternativa == "C"){
if(alternativaC[idPergunta] == corretas[idPergunta]){
if(tempoPara >= 270f){
acertos += 100;
}
else if (tempoPara < 270f && tempoPara >= 240f) {
acertos += 80;
}
else if (tempoPara < 240f && tempoPara >= 180f) {
acertos += 60;
}
else if (tempoPara < 1800f && tempoPara >= 120f) {
acertos += 40;
}
else if (tempoPara < 120f && tempoPara >= 60f) {
acertos += 20;
}
else if (tempoPara < 60f && tempoPara >= 1f) {
acertos += 10;
}
}
}
else if(alternativa == "D"){
if(alternativaD[idPergunta] == corretas[idPergunta]){
if(tempoPara >= 270f){
acertos += 100;
}
else if (tempoPara < 270f && tempoPara >= 240f) {
acertos += 80;
}
else if (tempoPara < 240f && tempoPara >= 180f) {
acertos += 60;
}
else if (tempoPara < 1800f && tempoPara >= 120f) {
acertos += 40;
}
else if (tempoPara < 120f && tempoPara >= 60f) {
acertos += 20;
}
else if (tempoPara < 60f && tempoPara >= 1f) {
acertos += 10;
}
}
}
else if(alternativa == "E"){
if(alternativaD[idPergunta] == corretas[idPergunta]){
if(tempoPara >= 270f){
acertos += 100;
}
else if (tempoPara < 270f && tempoPara >= 240f) {
acertos += 80;
}
else if (tempoPara < 240f && tempoPara >= 180f) {
acertos += 60;
}
else if (tempoPara < 1800f && tempoPara >= 120f) {
acertos += 40;
}
else if (tempoPara < 120f && tempoPara >= 60f) {
acertos += 20;
}
else if (tempoPara < 60f && tempoPara >= 1f) {
acertos += 10;
}
}
}
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];
respostaE.text = alternativaE[idPergunta];
infoRespostas.text = "Respondendo"+(idPergunta + 1).ToString() + " de "+questoes.ToString()+"perguntas.";
}
else{
soma = acertos;
notaFinal = Mathf.RoundToInt(soma);
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");
}
}
void Update()
{
tempoPara -= Time.deltaTime;
contagem.text = tempoPara.ToString("F");
if (tempoPara <= tempoEncerrado)
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];
respostaE.text = alternativaE[idPergunta];
infoRespostas.text = "Respondendo" + (idPergunta + 1).ToString() + " de " + questoes.ToString() + "perguntas.";
if (tempoPara <= tempoEncerrado)
{
tempoPara += 10;
if (idPergunta <= (questoes - 1))
{
pergunta.text = perguntas[idPergunta];
respostaA.text = alternativaA[idPergunta];
respostaB.text = alternativaB[idPergunta];
respostaC.text = alternativaC[idPergunta];
respostaD.text = alternativaD[idPergunta];
respostaE.text = alternativaE[idPergunta];
infoRespostas.text = "Respondendo" + (idPergunta + 1).ToString() + " de " + questoes.ToString() + "perguntas.";
}
}
}
}
}
Bomfa- Iniciante
- PONTOS : 1667
REPUTAÇÃO : 1
Respeito as regras :
Re: [RESOLVIDO] Reiniciar o cronometro ao responder uma questão
dentro da void 'proximaPergunta', você coloca o comando abaixo como a primeira coisa:
- Código:
tempoPara = 300f;
Re: [RESOLVIDO] Reiniciar o cronometro ao responder uma questão
Fucionou! Muito obrigado Marcos!MarcosSchultz escreveu:dentro da void 'proximaPergunta', você coloca o comando abaixo como a primeira coisa:
- Código:
tempoPara = 300f;
fiquei um tempão tentando resolver com meu amigo e não conseguia kkkkk
Valeu mesmo!
Bomfa- Iniciante
- PONTOS : 1667
REPUTAÇÃO : 1
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] Cena reiniciar quando o player morrer.
» [RESOLVIDO] Cronometro par Inimigo como se faz ?
» [RESOLVIDO] Criar um reset automático no cronometro
» [ajuda] Movimentação 3° third person
» Questão sobre jogo de 2 jogadores
» [RESOLVIDO] Cronometro par Inimigo como se faz ?
» [RESOLVIDO] Criar um reset automático no cronometro
» [ajuda] Movimentação 3° third person
» Questão sobre jogo de 2 jogadores
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos