SchultzGames
Para tirar dúvidas, crie um tópico especifico na área "Dúvidas em Geral" e aguarde ser respondido. Evite comentar em tópicos não relacionados a sua dúvida :D
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
criar um app que atende a vários produtos.
Erro Ao Tentar vincular SCRIPT C# com Objeto (Script need's to derive from MonoBehaviour)
onde publicar os trabalhos prontos.
tela preta do unity apos abrir no celular..
tela branca ao iniciar videoplayer
Rodar música fora do App
2 JOGOS EM ANDAMENTO:
Salvar Cores com Json
[Asset Grátis] - Key gratuita para "Ingame Logs Viewer" para quem avalia-lo!
fazer unity5 imprimir
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
Como faz para o jogo saber se e windows, android,tablet , mac e ios?
[RESOLVIDO] Detecta o fim da animação e conjura um novo evento.
como limitar o zoom mínimo e máximo no lean touch
[Resolvido] Unity - Executar Pagina Web Dentro De Um Programa
Rádio para programadores
StreamWriter... ajuda rapida no salvamento
Efeito Glowing
[RESOLVIDO] Detectar distância de objetos
Pack de áudio/ efeitos sonoros gratuitos.
Software para testar AR no PC
Fazer cada Scene em uma orientação
[TUTORIAL] Compilar para Android
Asset de paint com lag
Utilizar movimento de plataforma na UI
COMO MOVER UM OBJETO OU PERSONAGEM
[TUTORIAL] CONFIGURANDO O UNITY PARA COMPILAR PARA ANDROID
Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D
texto com rolamento pela seta
[RESOLVIDO] Rotacionar Personagem De Acordo Com a Direção Do Analógico
Dúvida Com Conta Matematica
[RESOLVIDO] Colocar uma condição para remover uma variavel do inspector?
APK trava com Admob
Conectar ao wifi
Celular dentro do game
[TUTORIAL] Como fazer um TELEPORTE
[RESOLVICO] Colisor que ao atravessar ele eu mudo minha cena no Unity2D ?
[TUTORIAL] Mover, arremessar e girar objetos com o mouse
Objeto sempre ocupando toda a camera
Transições de Animações de Sprites
[RESOLVIDO] Sprites mudando posição
Renderização no blender
[RESOLVIDO] AJUDA ERRO COM INIMIGO
Unity - Erro ao Salvar
Duvida resolucao
Mecânica de destruição de parte de um sprite
[RESOLVIDO] Reconhecimento de Joystick e Teclado
convert byte[] em texture2D
[TUTORIAL] Mover objetos 2D e conectar em lugares específicos
Captura de imagem
Como fazer variáveis se ocultarem no Editor?
[TUTORIAL] Unity 5 - Sistema Completo de PORTAS E CHAVES
paredes
OnTriggerExit2D detectando collider desativado
[TUTORIAL] Wheel Collider - como configurar corretamente.
posição de cubos..
[RESOLVIDO] Movimentar personagem por grade com clique do mouse. (Isométrico)
[RESOLVIDO] Data e hora atual no android
Game Engine
Dúvida Sobre o lucky patcher
[TUTORIAL] Converter uma variável String em Vetores
Tem como reproduzir vídeo em android?
Preferência em Games
[TUTORIAL] Singleton, A melhor forma de acessar a classe!
[RESOLVIDO] Acessar Scripts de Objetos Que Estão Como "DontDestroyOnLoad()" ?
[TUTORIAL] Arma tipo a do call of duty
[TUTORIAL] Double Jumping para games em 2D
[TUTORIAL] Unity 2019 - Lanterna e pilhas, com UI
GameJam valendo 15 mil reais em bitcoin!!
Combinar prefabs?!?
[TUTORIAL] Como usar FREE EASY CRIATURA CONTROLE IA
[TUTORIAL] MOVIMENTO NA ARMA PARA FICAR MAIS REAL!
Multiplayer será tirado da Unity?
Como dar o mesmo valor a varias variaveis ?
Procurando modelador de personagens!
Conta playstore
[TUTORIAL] Sistema de "Entrar" em locais
[TUTORIAL] Sistema de Lanterna com Pilhas
Como mudar cor do botao UI
[RESOLVIDO] Set Materials
Uma duvida sobre colliders 2d
Efeito 'vai e volta'
Tiro do IA direcionado a posição atual do Player
CircleCast
[RESOLVIDO] MoveTowards
Como mudar variaveis de uma [Serializable]
[TUTORIAL] Plataforma Tangente 2D
como criar um sistema de concorrência finaceira para jogo tycon
Salvando screenshot na galeria do Ipad (IOS)
Grama de terreno mudou textura e não consigo identificar o motivo
Como usar o Unity Monetization 3.0.1?
Marcha
Paint
[Asset Grátis] - Key gratuita para "Easy Mesh Combiner" para quem avalia-lo!
problemas com admob no Android Studio
Coroutine ou Invoke - qual tem melhor desempenho
[TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
[RESOLVIDO] Movimentação RigidBody 2D visto de cima
[RESOLVIDO] Gerador de senha
Hoje à(s) 12:02 am
Hoje à(s) 12:01 am
Ontem à(s) 11:51 pm
Ontem à(s) 11:36 pm
Ontem à(s) 11:16 pm
Ontem à(s) 10:12 pm
Ontem à(s) 8:18 pm
Ontem à(s) 8:15 pm
Ontem à(s) 8:07 pm
Ontem à(s) 8:00 pm
Ontem à(s) 7:34 pm
Ontem à(s) 6:58 pm
Ontem à(s) 2:49 pm
Ontem à(s) 12:09 pm
Qui Mar 21, 2019 11:13 pm
Qui Mar 21, 2019 11:02 pm
Qui Mar 21, 2019 9:22 pm
Qui Mar 21, 2019 5:10 pm
Qui Mar 21, 2019 5:01 pm
Qui Mar 21, 2019 3:38 pm
Qui Mar 21, 2019 11:52 am
Qui Mar 21, 2019 10:18 am
Qua Mar 20, 2019 9:29 pm
Qua Mar 20, 2019 9:19 pm
Qua Mar 20, 2019 8:39 pm
Qua Mar 20, 2019 8:33 pm
Ter Mar 19, 2019 10:03 pm
Ter Mar 19, 2019 1:50 pm
Ter Mar 19, 2019 7:03 am
Ter Mar 19, 2019 6:23 am
Ter Mar 19, 2019 6:02 am
Seg Mar 18, 2019 6:48 pm
Seg Mar 18, 2019 3:39 pm
Seg Mar 18, 2019 3:28 pm
Seg Mar 18, 2019 1:00 pm
Seg Mar 18, 2019 4:31 am
Dom Mar 17, 2019 3:43 pm
Sab Mar 16, 2019 5:11 pm
Sab Mar 16, 2019 4:37 pm
Sab Mar 16, 2019 3:48 pm
Sex Mar 15, 2019 6:40 pm
Sex Mar 15, 2019 3:09 pm
Sex Mar 15, 2019 9:32 am
Sex Mar 15, 2019 9:27 am
Qui Mar 14, 2019 9:55 pm
Qui Mar 14, 2019 9:50 pm
Qui Mar 14, 2019 9:45 pm
Qui Mar 14, 2019 9:44 pm
Qui Mar 14, 2019 9:42 pm
Qui Mar 14, 2019 9:38 pm
Qui Mar 14, 2019 9:00 pm
Qui Mar 14, 2019 8:54 pm
Qui Mar 14, 2019 8:33 pm
Qui Mar 14, 2019 8:29 pm
Qui Mar 14, 2019 5:06 pm
Qui Mar 14, 2019 3:39 pm
Qua Mar 13, 2019 5:30 pm
Ter Mar 12, 2019 2:54 pm
Seg Mar 11, 2019 10:21 pm
Seg Mar 11, 2019 1:25 pm
Seg Mar 11, 2019 11:51 am
Seg Mar 11, 2019 12:35 am
Dom Mar 10, 2019 9:49 pm
Dom Mar 10, 2019 8:20 pm
Dom Mar 10, 2019 5:47 pm
Dom Mar 10, 2019 5:21 pm
Dom Mar 10, 2019 2:12 pm
Sab Mar 09, 2019 7:50 pm
Sab Mar 09, 2019 12:18 pm
Sex Mar 08, 2019 6:55 pm
Sex Mar 08, 2019 2:40 pm
Qui Mar 07, 2019 12:19 pm
Qui Mar 07, 2019 12:12 pm
Qui Mar 07, 2019 11:59 am
Qui Mar 07, 2019 11:12 am
Qui Mar 07, 2019 1:29 am
Qua Mar 06, 2019 10:32 pm
Qua Mar 06, 2019 5:37 pm
Qua Mar 06, 2019 1:21 pm
Ter Mar 05, 2019 2:53 pm
Seg Mar 04, 2019 7:39 pm
Seg Mar 04, 2019 5:44 pm
Seg Mar 04, 2019 2:38 pm
Dom Mar 03, 2019 7:45 pm
Sab Mar 02, 2019 8:34 pm
Sab Mar 02, 2019 7:45 pm
Sab Mar 02, 2019 12:46 am
Sex Mar 01, 2019 10:52 pm
Sex Mar 01, 2019 4:43 pm
Sex Mar 01, 2019 4:31 pm
Sex Mar 01, 2019 12:52 pm
Qui Fev 28, 2019 9:30 pm
Qua Fev 27, 2019 8:30 pm
Qua Fev 27, 2019 11:05 am
Qua Fev 27, 2019 10:57 am
Ter Fev 26, 2019 6:33 pm
Ter Fev 26, 2019 10:37 am
Seg Fev 25, 2019 9:08 pm
Seg Fev 25, 2019 5:12 pm
marciosilva
NKKF
marciosilva
marciosilva
marciosilva
NKKF
dstaroski
dstaroski
dstaroski
dstaroski
Tegh
Chilinger
fabricadegame
eduardonog30
Magnatah
Magnatah
Encracker
michelly
numb123
RCGames Oficial
Magnatah
joffersoju
fabricadegame
MarcosSchultz
MarcosSchultz
MarcosSchultz
fabricadegame
Akuma97
Magnatah
Magnatah
Magnatah
luiz12345
rejão
Zack2
Zack2
MarcosSchultz
luiz12345
henriquegames501
lesgoy
MiguelLuiz
Lteo
diegopds
Diego Felix
Magnatah
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
Isabela
Isabela
Annko
juniorhotes
Weslley
Daniel Dória
juniorhotes
lesgoy
lucaslbatista
Flávio
Magnatah
diegopds
MayLeone
glauco
dimmuo
AnderGames
Unidade3d5
arthurunity
artplayer
diegopds
zeca urubu
Daniel Dória
AnderGames
MarcosSchultz
Alanigma
ffabim
Flávio
Flávio
Manawydan
rafaelllsd
Lteo
dimmuo
MateusPignatti
Madness
dstaroski
dstaroski
dstaroski
Madness
Madness
marcos4503
marcos4503
Flávio
kirito37
DuViDoSo
Flávio

Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Ir em baixo

DÚVIDA Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Sex Mar 15, 2019 2:49 pm

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
Iniciante
Iniciante

PONTOS : 31
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por MarcosSchultz em Sex Mar 15, 2019 5:09 pm

Isso é um tutorial? Uma dúvida?
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61534
REPUTAÇÃO : 2174
Idade : 22
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Sex Mar 15, 2019 11:27 pm

@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
Iniciante
Iniciante

PONTOS : 31
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por MayLeone em Dom Mar 17, 2019 3:03 pm

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
MayLeone
MayLeone
ProgramadorMaster

Feminino PONTOS : 852
REPUTAÇÃO : 243
Áreas de atuação : Unity, C++/C#, HTML, CSS, JS, jQuery, PHP, MySQL, XML, Blender
Respeito as regras :

Ver perfil do usuário http://compilemosfacil.blogspot.com.br

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por luiz12345 em Dom Mar 17, 2019 3:42 pm

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.
luiz12345
luiz12345
Avançado
Avançado

Masculino PONTOS : 1157
REPUTAÇÃO : 10
Idade : 18
Áreas de atuação : Gosto De Modelar '=' Armas,Carros,Blocos Caixas E Coisinhas Tipo Latinha De Coca :D
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Dom Mar 17, 2019 4:13 pm

@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
Iniciante
Iniciante

PONTOS : 31
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Dom Mar 17, 2019 4:24 pm

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
}

Akuma97
Iniciante
Iniciante

PONTOS : 31
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por luiz12345 em Dom Mar 17, 2019 5:50 pm

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.


luiz12345
luiz12345
Avançado
Avançado

Masculino PONTOS : 1157
REPUTAÇÃO : 10
Idade : 18
Áreas de atuação : Gosto De Modelar '=' Armas,Carros,Blocos Caixas E Coisinhas Tipo Latinha De Coca :D
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Dom Mar 17, 2019 6:23 pm

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.

Akuma97
Iniciante
Iniciante

PONTOS : 31
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Dom Mar 17, 2019 6:27 pm

e outro erro foi o "Lenght" que na verdade é "Length", mas já consertei.

Akuma97
Iniciante
Iniciante

PONTOS : 31
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Dom Mar 17, 2019 6:30 pm

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
Iniciante
Iniciante

PONTOS : 31
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Seg Mar 18, 2019 12:08 pm

Diz que o erro é em         if (Respondidas[idPergunta] == true)

Akuma97
Iniciante
Iniciante

PONTOS : 31
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Seg Mar 18, 2019 6:30 pm

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
Iniciante
Iniciante

PONTOS : 31
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Seg Mar 18, 2019 6:32 pm

Só que na próxima pergunta não fica aleatório...

Akuma97
Iniciante
Iniciante

PONTOS : 31
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por luiz12345 em Seg Mar 18, 2019 6:43 pm

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.
luiz12345
luiz12345
Avançado
Avançado

Masculino PONTOS : 1157
REPUTAÇÃO : 10
Idade : 18
Áreas de atuação : Gosto De Modelar '=' Armas,Carros,Blocos Caixas E Coisinhas Tipo Latinha De Coca :D
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Seg Mar 18, 2019 7:32 pm

@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
Iniciante
Iniciante

PONTOS : 31
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Seg Mar 18, 2019 8:06 pm

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
Iniciante
Iniciante

PONTOS : 31
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por luiz12345 em Seg Mar 18, 2019 8:35 pm

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];
luiz12345
luiz12345
Avançado
Avançado

Masculino PONTOS : 1157
REPUTAÇÃO : 10
Idade : 18
Áreas de atuação : Gosto De Modelar '=' Armas,Carros,Blocos Caixas E Coisinhas Tipo Latinha De Coca :D
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por luiz12345 em Seg Mar 18, 2019 8:39 pm

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.
luiz12345
luiz12345
Avançado
Avançado

Masculino PONTOS : 1157
REPUTAÇÃO : 10
Idade : 18
Áreas de atuação : Gosto De Modelar '=' Armas,Carros,Blocos Caixas E Coisinhas Tipo Latinha De Coca :D
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por luiz12345 em Seg Mar 18, 2019 8:39 pm

@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.
Void Start* to meio enrolado ;-;
luiz12345
luiz12345
Avançado
Avançado

Masculino PONTOS : 1157
REPUTAÇÃO : 10
Idade : 18
Áreas de atuação : Gosto De Modelar '=' Armas,Carros,Blocos Caixas E Coisinhas Tipo Latinha De Coca :D
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Seg Mar 18, 2019 9:53 pm

@luiz12345 escreveu:
@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.
Void Start* to meio enrolado ;-;

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
Iniciante
Iniciante

PONTOS : 31
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Seg Mar 18, 2019 11:26 pm

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
Iniciante
Iniciante

PONTOS : 31
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por luiz12345 em Ter Mar 19, 2019 1:14 am

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
luiz12345
luiz12345
Avançado
Avançado

Masculino PONTOS : 1157
REPUTAÇÃO : 10
Idade : 18
Áreas de atuação : Gosto De Modelar '=' Armas,Carros,Blocos Caixas E Coisinhas Tipo Latinha De Coca :D
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Ter Mar 19, 2019 10:56 am

@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
Iniciante
Iniciante

PONTOS : 31
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Ter Mar 19, 2019 11:12 am

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".

Akuma97
Iniciante
Iniciante

PONTOS : 31
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Ter Mar 19, 2019 11:14 am

Ele nem começa do começo. Tem horas que ele já vai pra ultima pergunta (são 10 perguntas)...

Akuma97
Iniciante
Iniciante

PONTOS : 31
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por luiz12345 em Ter Mar 19, 2019 12:34 pm

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.
luiz12345
luiz12345
Avançado
Avançado

Masculino PONTOS : 1157
REPUTAÇÃO : 10
Idade : 18
Áreas de atuação : Gosto De Modelar '=' Armas,Carros,Blocos Caixas E Coisinhas Tipo Latinha De Coca :D
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Ter Mar 19, 2019 1:50 pm

@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
Iniciante
Iniciante

PONTOS : 31
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum