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:
sensibilidade do mouse
Criar sprite multiplo de imagens de SVG no unity
Somar pontos quando matar um inimigo!!
OnTrigger e OnColision deixa o jogo mais pesado?
Criação de terreno para jogo comercial
Especificações do Celular
Prévia de atualização do meu jogo - Generic Shooter Game
Controles mobile 2d game Kit
criação de tabela comm filtro
Sistema de câmera - SnakeCam
Desativar texto não funciona
Erro com bala ...AJUDA
Desligar abate de distancia...
ScrollBar para menus ou inventários
problema com script de pula pula
Selecionar Objeto Usando Outlined
Formação de Equipe
movimentação FPS COM ERRO
Eu to usando este skript recentemente mas ele ta dando esses erros tem como ajudar
Animação bugada com Legacy
setActive não esta funcionando com condiçoes if
Dicas Para Cenário De Jogo De Terror
Dicas para organização de projeto
SOU MODELADOR SE TIVER ALGUEM PRECISANDO AI ME CONTATE
[TUTORIAL] Geração de níveis randômicos
dar play e spawn começar esta dando erro
movimentação por posição
nao consigo abrir projetos na unity
problema com script de random na scale de um objeto
Duvida sobre mesh colider
Falha no comando
Sistema de Replay
AJUDA COM MOVIMENTAÇAO DE ARMAS
[Asset] Brincando no SketchUp fiz uma casa
[RESOLVIDO] Como destruir um objeto com colisor?
[RESOLVIDO] Nome de Teclas
[TUTORIAL] Unity 3D - Sol realista (SunShafts) ->> 2020 funcionando
[TUTORIAL] Sistema de FPS com Corpo
Live dos jogos do fórum
Pausa dentro do jogo
Sistema de Pulo está dando erro.
player correndo e animação quando estiver colidindo
App Demo e Pago
Zoom da Câmera Orbital por Botões
FPS de Corpo Inteiro!
[TUTORIAL] FPS Controller com corpo completo!
Como posso criar um sistema de pulo para esse script que determina a gravidade.
Como posso configurar o NetworkManagerHud ?
Fear - Modern House The Game [WINDOWS - ANDROID]
sketchUP
ERRO NO SCRIPT UM UNICO ERRO
A animação não está funcionando bem.
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
Como eu posso fazer um player estilo GTA e que tenha uma câmera 360 como o GTA?
Pseudo 2D e algumas outras duvidas.
alquem me recomenda uma versao do unity que tenha tudo e que funcione bem e nao trave
[TUTORIAL] Sistema de visão para inimigos baseado em angulos
Compilando para Android
TOUCH
MenuPausa__Pedido
Ideia de como REPRESENTAR VELOCIDADE NA TELA
Erro no isLocalPlayer - Alguém?
Alguém que desenhe sprite 2d ?
Animação de morte
Posso limitar o "Instantiate" para instanciar até uma quantidade X?
Erro na troca de script do personagem
Duvída em relação ao UI em interações com objetos
Movimento helix jump
QUERIA SABER QUAL CODIGO PARA DESATIVAR UMA CAMERA E PASSAR PARA OUTRA
@MarcosSchultz tem como me enviar so o skript sunshafts
[TUTORIAL] AI Enemy ( Jogos de terror )
[ SUN SHAFTS ] nao encontro ele em lugar nenhum, estou usando a ultima versao do unity
PEDIDO - queria um script para entrar em um veiculo
Efeito Suave Ao Virar a Câmera
Quanto tempo o Google Play leva para analisar o app/ jogo e publicar ?
Fazer inimigo acompanhando rotação do player2D
Adicionar +1 ao colidir com objeto
Dark Dreams Reborn 1.7.2
OnAdFailedToLoad ADMOB
Duvida importante Sobre quando é exibido ANUNCIO NA TELA
Como Voltar um Objeto para a Posição Inicial?
Compartilhar a tela do jogo no facebook
Checar se tal objeto está em tal rotação
tamanho do brushes
Salvar cena
importa o caminhao do spintires para o bleand ou unit
Duvida sobre âncoras na UI
FPSController Buga ao Encostar em Porta com Colisor
Animator controller
Como faz para diminuir com tiro um objeto que crescer constatimente?
quero aprender o C# script!
Como eu faço uma vítima com animação para um jogo de terror
Fazer Os NPC Andarem Aleatoriamente pelo mapa (3D)
Animação de andar em jogo point click
[RESOLVIDO] Pontuaçao do personagem . Como poso melhorar ela ?
Como criar uma loja no menu Inicial?
Problemas com cor na unity
[RESOLVIDO] Porque fundo da letra NÃO FICA BRANCO, só fica invisivel
[RESOLVIDO] Mensagem UI
Hoje à(s) 1:28 pm
Hoje à(s) 10:55 am
Ontem à(s) 11:42 pm
Ontem à(s) 7:56 pm
Ontem à(s) 7:14 pm
Ontem à(s) 6:12 pm
Ontem à(s) 3:57 pm
Ontem à(s) 12:40 pm
Ter Jan 21, 2020 9:20 pm
Ter Jan 21, 2020 7:34 pm
Ter Jan 21, 2020 6:07 pm
Ter Jan 21, 2020 4:27 pm
Ter Jan 21, 2020 3:24 pm
Ter Jan 21, 2020 2:35 pm
Ter Jan 21, 2020 7:15 am
Ter Jan 21, 2020 12:34 am
Seg Jan 20, 2020 11:49 pm
Seg Jan 20, 2020 9:36 pm
Seg Jan 20, 2020 6:32 pm
Seg Jan 20, 2020 12:43 pm
Seg Jan 20, 2020 12:28 pm
Seg Jan 20, 2020 11:54 am
Dom Jan 19, 2020 7:41 pm
Dom Jan 19, 2020 5:33 pm
Dom Jan 19, 2020 5:28 pm
Dom Jan 19, 2020 2:24 pm
Dom Jan 19, 2020 1:59 am
Sab Jan 18, 2020 11:12 pm
Sab Jan 18, 2020 8:51 pm
Sab Jan 18, 2020 6:05 pm
Sab Jan 18, 2020 5:57 pm
Sab Jan 18, 2020 5:12 pm
Sab Jan 18, 2020 4:49 pm
Sex Jan 17, 2020 11:36 pm
Sex Jan 17, 2020 9:21 pm
Sex Jan 17, 2020 12:21 pm
Sex Jan 17, 2020 10:10 am
Sex Jan 17, 2020 12:44 am
Qui Jan 16, 2020 9:01 pm
Qui Jan 16, 2020 2:35 pm
Qui Jan 16, 2020 10:33 am
Qui Jan 16, 2020 1:00 am
Qua Jan 15, 2020 11:05 pm
Qua Jan 15, 2020 8:22 pm
Qua Jan 15, 2020 6:04 pm
Qua Jan 15, 2020 6:03 pm
Qua Jan 15, 2020 5:41 pm
Qua Jan 15, 2020 12:30 pm
Qua Jan 15, 2020 2:05 am
Ter Jan 14, 2020 10:28 pm
Ter Jan 14, 2020 9:21 pm
Ter Jan 14, 2020 8:34 pm
Ter Jan 14, 2020 7:30 pm
Ter Jan 14, 2020 4:42 pm
Ter Jan 14, 2020 12:05 pm
Ter Jan 14, 2020 10:25 am
Seg Jan 13, 2020 8:10 pm
Seg Jan 13, 2020 7:51 pm
Seg Jan 13, 2020 5:45 pm
Seg Jan 13, 2020 4:40 pm
Seg Jan 13, 2020 4:31 pm
Seg Jan 13, 2020 2:44 pm
Seg Jan 13, 2020 1:42 am
Dom Jan 12, 2020 11:24 pm
Dom Jan 12, 2020 11:17 pm
Dom Jan 12, 2020 11:10 pm
Dom Jan 12, 2020 9:48 pm
Dom Jan 12, 2020 9:32 pm
Dom Jan 12, 2020 5:29 pm
Dom Jan 12, 2020 7:56 am
Dom Jan 12, 2020 2:59 am
Dom Jan 12, 2020 2:50 am
Sab Jan 11, 2020 10:18 pm
Sab Jan 11, 2020 8:23 pm
Sab Jan 11, 2020 7:54 pm
Sab Jan 11, 2020 1:30 pm
Sab Jan 11, 2020 12:15 pm
Sab Jan 11, 2020 1:42 am
Sex Jan 10, 2020 10:35 am
Sex Jan 10, 2020 8:16 am
Qui Jan 09, 2020 10:12 pm
Qui Jan 09, 2020 10:05 pm
Qui Jan 09, 2020 10:03 pm
Qui Jan 09, 2020 10:00 pm
Qui Jan 09, 2020 9:46 pm
Qui Jan 09, 2020 6:38 pm
Qui Jan 09, 2020 2:43 pm
Qui Jan 09, 2020 2:00 pm
Qui Jan 09, 2020 12:20 am
Qua Jan 08, 2020 11:28 pm
Qua Jan 08, 2020 10:20 pm
Qua Jan 08, 2020 4:31 pm
Qua Jan 08, 2020 12:51 pm
Qua Jan 08, 2020 12:39 pm
Qua Jan 08, 2020 12:38 pm
Qua Jan 08, 2020 11:52 am
Qua Jan 08, 2020 11:36 am
Qua Jan 08, 2020 10:20 am
Ter Jan 07, 2020 9:13 pm
Piewdie Mãe
joffersoju
NKKF
Fagner
Magnatah
Fagner
Heltonlay
NKKF
MayLeone
Fagner
lucasluiz789
Piewdie Mãe
Fagner
hendrick22
Kleber Lucas
BlesseD
JhoowGamer
Piewdie Mãe
Felipe42
lesgoy
Kleber Lucas
nvndx
Antônio T
LAGGAMES
AnderGames
nvndx
Antônio T
RafaelSquid1
nvndx
NKKF
NKKF
Fagner
Piewdie Mãe
Fagner
Wahder
skillMakarov
MarceloYBP
LúcioHenrique098
LúcioHenrique098
RafaelSquid1
teos626
nvndx
lesgoy
mama2401
LúcioHenrique098
LúcioHenrique098
teos626
NKKF
RafaelSquid1
RafaelSquid1
Fagner
pwssantos
Antônio T
vibonito
Antônio T
lucasluiz789
hendrick22
BlesseD
hendrick22
Edu4rdogx
gtcmcsgo
RafaelSquid1
juansup
Edivandro2706
felipe jesus
Edivandro2706
Sherlock
Fagner
Felipe42
Felipe42
BlesseD
Felipe42
Felipe42
Magnatah
Antônio T
joffersoju
lucasluiz789
guimaraf
gtcmcsgo
gtcmcsgo
mama2401
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
bruno92
BlesseD
BlesseD
hendrick22
MayLeone
adrianobros2
adrianobros2
samoliver1813
samoliver1813
negroredgames@gmail.com
adrianobros2
poyser
gtcmcsgo
BlesseD

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 : 721
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 : 721
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 : 721
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