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:
Qual versão do JDK, NDK E SDK o Unity Hub recomenda para Unity 2019.2.12f1 (64-bit)?
[DUVIDA]como saber se um jogo esta rodando nativamente 1080p
Diferenca entre bundle google play e split
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
Ajuda com spaw
Projeto de feira
historia para um jogo
Dúvida Realidade aumentada
[Projeto] Omega Racers - Steam Acesso antecipado
Erro build Android
Erro ao dar play Unity
Transparência de objeto através do color.alfa
chamando animaçao depois de um tempo
[DUVIDA] SELECIONAR APP EM SEGUNDO PLANO NO CELULAR
App feito na Unity - Biblia Sagrada
Pode me ajudar com o Simple move
[RESOLVIDO] Erro invisível na aba console (ALGUÉM ME AJUDA?)
DUVIDA IMPORTANTE SOBRE O EXPORT COM A OPCAO SPLIT NA UNITY
[TUTORIAL] Unity 5 - Como criar o próprio FPS Controller
[TUTORIAL] FPS Controller com corpo completo!
[EM DESENVOLVIMENTO] Top Island
(Duvida) Salvando array com playerprefs
PROBLEMA NO BUILD UNITY ANDROID
Estou com problemas com o NavMeshAgent
Diálogos e Linguagens
Saiu o primeiro teaser do meu novo jogo Inferno Verde
suporte para g29
AJUDA COM EXPORTACAO "SPLIT" NA UNITY
Duvida(tamanho de objetos)
Erro no Unity 2019
[RESOLVIDO] Física ser calculada mais rápida
Física do Caminhão e Trailer
Meu game para Android " As aventuras de Steff " finalizado, ou quase!
[RESOLVIDO] Duvida com FadeIn e FadeOut quando o tempo do jogo acaba
Bug Partículas
Problema com Dano ao Inimigo
Video Player travando no apk do jogo
Uma Ideia Movimento
Como fazer o personagem não conseguir flipar enquanto estou atacando? (Unity 2D)
como resolve esse erro?
[PHOTON] Algumas animações não sincronizam!
SER INSERIDA EM LUGARES RANDÔMICOS!
MACHADO ENCOSTAR NA ÁRVORE
[RESOLVIDO] como respawnar um objeto na minha frente?
Como criar assinatura mensal em jogo na play console
[TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
movendo personagem com rb duvida
Como ignorar um erro? fazer ele parar de aparecer no console?
Simulador de policia [C#] [Jogo em andamento] [Procurando Equipe]
Problema ao iniciar uma array statica
Arquivos com Casa, arvores, Gramas, Objetos3d Etc...
Ajuda com Raycast de hit para um objeto individual citado
ME TIREM UMA DUVIDA DO ADMOB ANTES DE PUBLICAR O GAME
Eu preciso de ajuda para um impulso de pinball
Problemas com movimentação do personagem [AJUDA]
Limite de camera em um jogo metroidvania
AJUDA COM ADMOB
Meu primeiro jogo + Link para download.
duvida player quicando ao descer desnivel
DUVIDA SOBRE - Target Android API
Mudar a Descrição do Elemment Array no Inspector Dinamicamente
[RESOLVIDO] Ajuda com States
Duvida com Script de AI inteligente
UNITY NAO APARECE PROJETOS
Criar Apk Android 64 .aab
Animaçoes
Aplicar física em animação.
Como mudar animação do sprite automaticamente?
PLAYER NAO MOVER ENQUANTO ESTA ABAIXADO
[RESOLVIDO] Detectar quando a animação do animator acaba para dar dano no player
Problema pra compilar jogo para Android 6.0
Unity2D- Fazer 2 inimigos nascerem depois entrar em um collider?
CHUVA AUTOMÁTICA
ME AJUDEM POR FAVORR!!
ATUALIZAR OU NAO O PROJETO?
Como ativar a realidade virtual em tempo de execucao
[TUTORIAL] Unity + PHP + Mysql (com PDO)
Dúvida sobre Realidade Aumentada
Copyright da Assetstore
opnião sobre sistema de carro que é preciso ligar o motor
Imagem cortada na diagonal em apneas dosi aparelhos
Problema com script e physics 2d
erro com ADMOB , AJUDEM POR FAVOR
Problema com o script de menu pause do Marcos
[Dúvida] ScreenShare
Erro na interface da unity para android
[RESOLVIDO] Como fazer uma ação acontecer apenas após a animação terminar?
o sprite editor não quer abrir alguem pode me ajuda com isso?
VERIFICAR SE O USUARIO ESTÁ COM INTERNET
problemas com movimentação de objetos no unity
[TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Preciso de um script para simular a suspeçao a ar
Unity - unidade de medida e escala
[TUTORIAL] Campo de visão dos inimigos (Enemy FOV) com Raycast ou OverlapSphere
Inimigo Em C# Seguir e Atacar o Player !
[RESOLVIDO] Mudar de Camera entre personagens
[RESOLVIDO] alterar a cor da camera via script
Jogo de Favela para Android - Estou usando o MS Vehicle System do Marcos!
Dúvida Animação de Sprite na Unity
Hoje à(s) 4:37 pm
Hoje à(s) 2:20 pm
Hoje à(s) 11:06 am
Hoje à(s) 5:40 am
Ontem à(s) 8:26 pm
Ontem à(s) 4:50 pm
Ontem à(s) 4:40 pm
Ontem à(s) 3:30 pm
Ontem à(s) 1:36 pm
Ontem à(s) 9:39 am
Ontem à(s) 2:57 am
Ontem à(s) 12:48 am
Ter Nov 12, 2019 8:41 pm
Ter Nov 12, 2019 8:35 pm
Ter Nov 12, 2019 6:28 pm
Ter Nov 12, 2019 4:24 pm
Ter Nov 12, 2019 1:52 pm
Ter Nov 12, 2019 11:57 am
Ter Nov 12, 2019 1:15 am
Ter Nov 12, 2019 12:13 am
Seg Nov 11, 2019 11:31 pm
Seg Nov 11, 2019 5:14 pm
Seg Nov 11, 2019 4:37 pm
Seg Nov 11, 2019 3:29 pm
Seg Nov 11, 2019 4:03 am
Dom Nov 10, 2019 10:20 pm
Dom Nov 10, 2019 9:37 pm
Dom Nov 10, 2019 9:30 pm
Dom Nov 10, 2019 8:30 pm
Dom Nov 10, 2019 8:22 pm
Dom Nov 10, 2019 12:04 pm
Dom Nov 10, 2019 11:23 am
Dom Nov 10, 2019 7:10 am
Dom Nov 10, 2019 12:18 am
Dom Nov 10, 2019 12:16 am
Dom Nov 10, 2019 12:11 am
Dom Nov 10, 2019 12:02 am
Sab Nov 09, 2019 11:58 pm
Sab Nov 09, 2019 11:56 pm
Sab Nov 09, 2019 11:32 pm
Sab Nov 09, 2019 9:06 pm
Sab Nov 09, 2019 1:29 pm
Sex Nov 08, 2019 8:26 pm
Sex Nov 08, 2019 7:53 pm
Sex Nov 08, 2019 6:09 pm
Sex Nov 08, 2019 1:37 pm
Sex Nov 08, 2019 12:51 pm
Sex Nov 08, 2019 8:17 am
Sex Nov 08, 2019 2:25 am
Sex Nov 08, 2019 1:00 am
Qui Nov 07, 2019 11:29 pm
Qui Nov 07, 2019 8:06 pm
Qui Nov 07, 2019 2:38 pm
Qui Nov 07, 2019 3:53 am
Qui Nov 07, 2019 1:01 am
Qua Nov 06, 2019 9:41 pm
Qua Nov 06, 2019 9:12 pm
Qua Nov 06, 2019 9:01 pm
Qua Nov 06, 2019 3:10 pm
Qua Nov 06, 2019 11:17 am
Qua Nov 06, 2019 4:13 am
Ter Nov 05, 2019 11:23 pm
Ter Nov 05, 2019 10:54 pm
Ter Nov 05, 2019 10:15 pm
Ter Nov 05, 2019 8:48 pm
Ter Nov 05, 2019 8:36 pm
Ter Nov 05, 2019 8:29 pm
Ter Nov 05, 2019 6:35 pm
Ter Nov 05, 2019 3:48 pm
Ter Nov 05, 2019 2:36 pm
Ter Nov 05, 2019 2:16 pm
Ter Nov 05, 2019 3:39 am
Seg Nov 04, 2019 10:14 pm
Seg Nov 04, 2019 9:45 pm
Seg Nov 04, 2019 3:29 pm
Dom Nov 03, 2019 11:09 pm
Dom Nov 03, 2019 4:14 pm
Dom Nov 03, 2019 2:49 pm
Dom Nov 03, 2019 9:42 am
Sab Nov 02, 2019 11:07 pm
Sex Nov 01, 2019 2:13 pm
Sex Nov 01, 2019 12:59 pm
Sex Nov 01, 2019 9:42 am
Sex Nov 01, 2019 8:26 am
Qui Out 31, 2019 12:24 pm
Qui Out 31, 2019 10:38 am
Qua Out 30, 2019 9:12 pm
Ter Out 29, 2019 6:03 pm
Ter Out 29, 2019 12:49 pm
Ter Out 29, 2019 10:18 am
Seg Out 28, 2019 3:03 pm
Seg Out 28, 2019 2:11 pm
Dom Out 27, 2019 12:19 pm
Dom Out 27, 2019 9:25 am
Dom Out 27, 2019 12:45 am
Sab Out 26, 2019 3:31 am
Sab Out 26, 2019 12:07 am
Sex Out 25, 2019 10:03 pm
Sex Out 25, 2019 4:39 pm
Daniel Dória
guimaraf
gtcmcsgo
MarcosSchultz
RafaelSquid1
porion
RafaelSquid1
numb123
guimaraf
numb123
IOOI
joffersoju
teyroberto1
luizrbizzio
John Wesley
Weslley
verme1311
gtcmcsgo
Blaker
leonardolopes
RafaelSquid1
poyser
luizrbizzio
RafaelSquid1
RafaelSquid1
Patrick
williangamesbr4021
gtcmcsgo
poyser
RafaelSquid1
NKKF
guimaraf
RafaelSquid1
Lester3422
Magnatah
Magnatah
Magnatah
Magnatah
Magnatah
Magnatah
Diguinho
Fagner
leonardolopes
Valakinhas
eduardonog30
dstaroski
Valakinhas
Valakinhas
RafaelSquid1
poyser
RafaelSquid1
Valakinhas
gtcmcsgo
MayLeone
luizrbizzio
Hamassfall
gtcmcsgo
MarceloYBP
Édipo
gtcmcsgo
conceptfac
Hamassfall
MayLeone
Alerson Software
Fagner
Magnatah
Magnatah
MayLeone
pablo77
CyberPh4ntom
eduardonog30
MayLeone
leonardolopes
Fagner
gtcmcsgo
matheusgfgl
Diguinho
Fagner
Tegh
nvndx
eduardonog30
Fagner
gtcmcsgo
Lester3422
ruanzikaad
gtcmcsgo
Hamassfall
Tegh
JohnRambo
Tegh
MarcosSchultz
MayLeone
Emerson Rebouças
lauderson
JohnRambo
lucas998
poyser
thales.ulisses
MayLeone

Jogo de Maior ou Menor - Duvida sobre melhorias no script

Ir em baixo

DÚVIDA Jogo de Maior ou Menor - Duvida sobre melhorias no script

Mensagem por joffersoju em Seg Out 14, 2019 12:24 pm

Prezados,

Fiz um joguinho simples de maior ou menor, pois, tenho dificuldade com programação, estou aprendendo ainda...

Ele funciona assim... clica no botão maior e menor e a carta é virada e ela também fica guardada na posição abaixo respectiva...

Como o baralho são 4 naipes, ele precisa passar por todos eles para ganhar... E acertar das 5 tentativas, pelo menos 3 para avançar para o próximo naipe...

O jogo é só a tela inicial para desbloquear a fase real depois...

Gostaria de se possível, vissem e me dessem um feedback sobre a possibilidade de usar loop para diminuição de código ou outras melhorias estruturais e de elegância para o código... O código vai comentado...

A imagem da tela do jogo é essa:
https://uploaddeimagens.com.br/imagens/telajogomaior_ou_menor-png

O código é:
Código:
using TMPro;
using UnityEngine;
using UnityEngine.UI;

public class NumeroMaiorOuMenor : MonoBehaviour
{
    public int cartaAleatoria; //numero aleatorio gerado
    public int cartaAleatoriaFalsa, idCartaClone; //referencia para mudar sprite da carta da mesa e das 5 cartas que saíram
    public int pontos = 0; //pontos do jogador
    private int tentativas = 5; //total de tentativas
    public Button[] botoes; //botoes de maior e menor
    public GameObject verso, anverso, botaoTarefas, mainCamera, carta5; //verso e anverso da carta da mesa *botao que contem todo esse jogo e deixá-lo falso *usar script anexado a camera *carta 5 que está sobre a mesa
    public GameObject[] baralhoSaiu, naipeMostrar; //as cartas embaixo que sairam *naipe embaixo para mostrar os que já venceu
    public TextMeshPro textoNumeroAleatorio, textoQuestoes, textoPontos; //textoNumeroAleatorio para teste *textoQuestoes e dos Pontos para visualizacao pelo jogador
    public int idPergunta, idNaipe; //referencia para o número da pergunta *referencia para mudar o naipe embaixo
    public Sprite[] cartaOuro, cartaEspadas, cartaCopas, cartaPaus; //os sprites das cartas anexadas no inspector, por naipe
    public AudioSource[] som; //som de erro e acerto
    public bool venceuDesafio = false;

    void Start()
    {
        if (PlayerPrefs.HasKey("JogoMaiorQueCinco")) //para quando ele vencer esse desafio e ele abre o scene, ele não tenha que responder de novo
        {
            mainCamera.GetComponent<AtivarDesativarObjeto>().Desativar(); //o script de desativa este desafio está na camera
        }

        idPergunta = 1; //referencia de valores de inicio
        idNaipe = 0; //referencia de valores de inicio
        idCartaClone = 0; //referencia de valores de inicio
        GerarCartaAleatoria(); //vai gerar um numero aleatorio
    }

    private void Update()
    {
        textoQuestoes.text = "Questão " + idPergunta + " de " + tentativas;//durante o jogo havera as mudancas nos valores das questoes e pontos
        textoPontos.text = "Pontos: " + pontos;
        anverso.GetComponent<SpriteRenderer>().sprite = cartaOuro[cartaAleatoriaFalsa];//o sprite da carta na mesa muda
        CartasMostrar(); //os sprites dos naipes vao mudando a medida que vai progredindo e vencendo cada naipe... vao substituindo sempre os sprites do cartaOuro
        carta5.GetComponent<SpriteRenderer>().sprite = cartaOuro[4];//o naipe do 5 da carta na mesa muda
    }

    public void GerarCartaAleatoria()
    {
        cartaAleatoria = Random.Range(1, 10); //gera os numero de 1 a 9, referente as cartas que estao anexadas no Inspector

        if (cartaAleatoria == 5) //como não coloquei o IGUAL A 5, estou excluindo ele e fazendo com que gere uma nova cartaAleatoria
        {
            Debug.Log("Deu Cinco... que Incrível!!!");//só pra saber quando deu 5
            idCartaClone = idCartaClone - 1; //foi necessário pq quando saia 5, a referencia do baralhoSaiu sempre pulava uma carta pq ele entendia assim
            GerarCartaAleatoria();
        }

        cartaAleatoriaFalsa = cartaAleatoria - 1; //o numeroAleatorioFalse foi necessario para que o sprite correto tanto no baralhoSaiu qt o naipeMostrar
        textoNumeroAleatorio.text = "" + cartaAleatoria; //o texto para o teste do numeroAleatorio
        idCartaClone = idCartaClone + 1; //referencia da cartaClone embaixo
    }


    public void MenorQueCinco() //se clicar maior que cinco, add pontos, tem um sonzinho, desativar o verso para mostrar a cartaAleatoria na mesa e uma das 5 embaixo, e invoka a funcao para saber se o numero da pergunta é maior que o número de questoes
    {
        if (cartaAleatoria < 5)
        {
            som[0].Play();
            pontos++;
            verso.SetActive(false);
            CartasSairam();
            Invoke("ProxNumAleatorio", 1);
        }
        else
        {
            som[1].Play();
            verso.SetActive(false);
            CartasSairam();
            Invoke("ProxNumAleatorio", 1);
        }
    }

    public void MaiorQueCinco()//tal qual o anterior
    {
        if (cartaAleatoria > 5)
        {
            som[0].Play();
            pontos++;
            verso.SetActive(false);
            CartasSairam();
            Invoke("ProxNumAleatorio", 1);
        }
        else
        {
            som[1].Play();
            verso.SetActive(false);
            CartasSairam();
            Invoke("ProxNumAleatorio", 1);
        }
    }

    void FuncaoNaipe()//é chamada na funcao ProxCartaAleatoria para atualizar os valores e as cartas da mesa, além de gerar outra carta aleatoria, se tiver pelo menos 3 acertos
    {
        pontos = 0;
        idPergunta = 1;
        idNaipe += 1;
        idCartaClone = 0;
        CartasMostrar();
        CartasSairamVoltar();
        GerarCartaAleatoria();
    }

    void FuncaoPerdeuNaipe()//é chamada na funcao ProxCartaAleatoria para atualizar os valores e as cartas da mesa, além de gerar outra carta aleatoria, se tiver menos de 3 acertos
    {
        pontos = 0;
        idPergunta = 1;
        idCartaClone = 0;
        CartasSairamVoltar();
        GerarCartaAleatoria();
    }

    void CartasSairam()//add o sprite da carta que saiu ao local de referencia no Inspector
    {
        if (idCartaClone == 1)
        {
            baralhoSaiu[0].GetComponent<SpriteRenderer>().sprite = cartaOuro[cartaAleatoriaFalsa];
        }
        if (idCartaClone == 2)
        {
            baralhoSaiu[1].GetComponent<SpriteRenderer>().sprite = cartaOuro[cartaAleatoriaFalsa];
        }
        if (idCartaClone == 3)
        {
            baralhoSaiu[2].GetComponent<SpriteRenderer>().sprite = cartaOuro[cartaAleatoriaFalsa];
        }
        if (idCartaClone == 4)
        {
            baralhoSaiu[3].GetComponent<SpriteRenderer>().sprite = cartaOuro[cartaAleatoriaFalsa];
        }
        if (idCartaClone == 5)
        {
            baralhoSaiu[4].GetComponent<SpriteRenderer>().sprite = cartaOuro[cartaAleatoriaFalsa];
        }
    }

    void CartasSairamVoltar()//ao concluir as 5 tentativas, ele volta o verso novamente
    {
        foreach (GameObject baralho in baralhoSaiu)
        {
            baralho.GetComponent<SpriteRenderer>().sprite = verso.GetComponent<SpriteRenderer>().sprite;
        }
    }

    void CartasMostrar()//mostra qual naipe o jogador ja venceu, sao os 4 que estao embaixo
    {
        if (idNaipe == 1)
        {
            naipeMostrar[1].SetActive(false);
            cartaOuro = cartaEspadas;
        }

        if (idNaipe == 2)
        {
            naipeMostrar[2].SetActive(false);
            cartaOuro = cartaCopas;
        }

        if (idNaipe == 3)
        {
            naipeMostrar[3].SetActive(false);
            cartaOuro = cartaPaus;
        }
    }

    void ProxCartaAleatoria()//verificar se a pergunta é maior que as tentativas e entao define as funcoes a serem executadas
    {
        verso.SetActive(true);
        idPergunta += 1;

        if (idPergunta > tentativas)
        {
            if (idNaipe == 0 && pontos > 2)
            {
                Debug.Log("Voce venceu Copas");
                FuncaoNaipe();
            }

            else if (idNaipe == 1 && pontos > 2)
            {
                Debug.Log("Voce venceu Espadas");
                FuncaoNaipe();
            }

            else if (idNaipe == 2 && pontos > 2)
            {
                Debug.Log("Voce venceu Ouro");
                FuncaoNaipe();
            }

            else if (idNaipe == 3 && pontos > 2)
            {
                Debug.Log("Voce venceu Paus");
                PlayerPrefs.SetInt("JogoMaiorQueCinco", 0);
                botaoTarefas.GetComponent<AtivarDesativarObjeto>().Desativar();
            }
            else
            {
                FuncaoPerdeuNaipe();
            }
        }

        else
        {
            GerarCartaAleatoria();
            Debug.Log("Gerou outro numero aleatorio");
        }
    }
}

Agradeço...

joffersoju
Avançado
Avançado

PONTOS : 633
REPUTAÇÃO : 2
Respeito as regras : Jogo de Maior ou Menor - Duvida sobre melhorias no script WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Jogo de Maior ou Menor - Duvida sobre melhorias no script

Mensagem por joffersoju em Seg Out 14, 2019 1:24 pm


joffersoju
Avançado
Avançado

PONTOS : 633
REPUTAÇÃO : 2
Respeito as regras : Jogo de Maior ou Menor - Duvida sobre melhorias no script WvDYdlf

Voltar ao Topo Ir em baixo

DÚVIDA Re: Jogo de Maior ou Menor - Duvida sobre melhorias no script

Mensagem por joffersoju em Seg Out 14, 2019 1:29 pm

Ah... teve umas variáveis que mudei o nome de última hora... no Invoke da função MenorQueCinco... ela vai para a função ProxCartaAleatoria...

joffersoju
Avançado
Avançado

PONTOS : 633
REPUTAÇÃO : 2
Respeito as regras : Jogo de Maior ou Menor - Duvida sobre melhorias no script WvDYdlf

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