E finalmente chegou a parte que eu mais temia pessoal, os códigos! Mas uma hora eu teria que entrar nessa bagaceira né? E como esperado já tive problemas de primeira. Bateu aquele aperto no coração de "É... Eu não vou conseguir não", mas acho que de pouquinho em pouquinho eu chego lá né? Então tá na hora de compartilhar essa pequena experiência com vocês. Antes de tudo não esqueçam de dar uma olhada na parte 04.
Bom, no projeto eu tive que criar um ícone (Ou seria arquivo? Sei lá a denominação) do tipo Javascript, porque é a linguagem usada no jogo, pelo o que sei o Unity aceita outras linguagens, mas o tutorial tá usando esse e não sei programar, então não tenho muito do que reclamar né? Uahahaha,
Essa parte já foi um problema, porque é preciso clicar duas vezes no ícone pra abrir uma outra janela, onde o código é digitado. O problema é que abriu primeiro uma mensagem da microsoft pedindo pra fazer login no Visual Studio. Eu entrei em desespero kkkk, não sabia se era o do unity ou minha conta microsoft ou o que, cliquei foi em pular, daí veio a outra tela perguntando o "tipo" que eu queria abrir, tinha GERAL e outras opções, entre elas Javascript, que foi a que escolhi. Mas acho que me ferrei porque abriu diferente do tutorial, sem as janelinhas laterais, não consegui achar como mudar e se o cara começar a usar as janelinhas laterais eu to ferrado.
Mas bom, comecei a fazer o código do jeitinho que mandava, mas baseado nos elementos do meu próprio jogo, o código final foi esse aqui:
Eu acho que peguei um pouquinho da coisa, mas não consigo entender por completa. Quando eu abri o arquivo, ele não veio vazio, vieram nele as linhas 1, 5 e 15. Acho que a linha 1 é um comentário, pois tem muito lugar que usa jogo da velha pra indicar que é uma linha apenas informativa. A linha 5 acredito que seja referente ao modo como o jogo vai começar assim que ele for executado, e a linha 15 creio que seja referente a atualizações que vão ocorrer no jogo, seja automaticamente como um inimigo se mexendo sozinho, seja por botões que o jogador apertou. Eu acho né? kkkkkkkk.
Pelo o que eu entendi é o seguinte, esse var Animacoes: Animator; quer dizer que eu criei uma "variável", que é um "negócio" que pode variar o seu estado, ele se chama "Animacoes" pra facilitar o meu entendimento e é do tipo Animator. Eu acredito que deva ser desse tipo porque é um monte de imagens, que eu saiba existem variáveis pra outros tipos de coisas como números aleatórios e tal. Mas não vou falar muito porque as coisas que sei são bem por alto mesmo.
Então vem a parte do Animacoes.SetBool("Parado",true); e as outras linhas parecidas embaixo dele. O que imagino que esteja acontecendo aqui é que o código tá dizendo pro jogo que quando ele começar (já que tá embaixo da funcion Start) todos esses quatro itens irão ter que ficar no estado que as linhas de código estiverem dizendo.
Então a primeira linha começa acessando a variável Animacoes, daí tem um PONTO pra separar e vem o SetBool, creio eu que seja pra determinar que Animacoes passa a ser booleano (aquilo de Verdadeiro e Falso que falei na Parte 03). Daí vem o parenteses e entre aspas está o "Parado" pra indicar de qual das animações está falando e um vírgula pra dizer se no início do jogo aquele estado será verdadeiro (true) ou falso (false). Daí note que o único verdadeiro é o "Parado", pois é assim que um jogo começa, os outros estados, Pulando, Atacando e Correndo estão marcados como falso.
Eu não sei bem porque usam aspas pra definir algumas coisas e outras não, essa separação por pontos ou por vírgulas, nossa esse bagulho me deixou louquinho. Acredito que com o tempo eu posso acabar pegando, até porque parece ser intuitivo se você sabe inglês (ou ao menos espero que não seja só impressão).
E por fim vem a linha do if (Input.GetKeyDown (KeyCode.Space)) que foi onde realmente entrei em desespero. Isso está na parte de atualizações, então é aquilo de eventos acontecendo no jogo. Traduzindo ao pé da letra isso ficaria Se (Introduzir.ApertarTecla (ChaveDaTecla.Espaço). Então é bem óbvio que esse código é pra finalmente fazer o "contato" entre o teclado e o jogo. Só não entendo porque tanto código pra se referir à tecla ESPAÇO no teclado. GetKeyDown e KeyCode não se referem a tecla? Pra que repetir esse bagulho? Daí embaixo tem novamente aquele mesmo código de pulando da parte de START só que com TRUE.
A minha treta nesse negócio foi porque eu digitei uma letra em minúsculo e tem que ser TUDO escrito direitinho, maiúsculo no lugar certo e minúsculo também. O problema é que no jogo quando eu apertava PLAY, ele só dizia que não podia executar come erros. Mas no programa do código (é compilador o nome disso né?) não aparecia uma barrinha dizendo onde tinha erro. Só depois de um tempo fui descobrir que no próprio Unity aparece na parte de baixo do programa indicando a linha. Foi um alívio imenso!
Mas bom, eu quis parar por aí mesmo porque já foi um saco fazer algo tão pequeno, acredito que pra quem programa isso é absurdamente ridículo, mas pra mim foi bem chato mesmo. A única coisa que esse código faz é dizer pro jogo em que estado o personagem vai começar (no caso é parado) e que se apertar a tecla espaço ele vai fazer a animação de pulo. Mas é só a animação mesmo, por isso o personagem não pula, eu aperto espaço e ele mostra animação de salto, mas paradinho no chão. Aqui:
O gif animado faz parecer que eu apertei e soltei, mas quando solta a tecla de espaço o personagem não volta ao normal, então é pura impressão. Note também que ele tá atravessando o cenário, isso me deu uma agonia. Eu notei que a cena é em um ambiente 3D apesar de tudo, então eu posso jogar objetos pra trás. Acho que a solução pra isso vai ser jogar o cenário pra trás e colocar um bloco invisível pro personagem ficar em cima, aí vai dar a impressão de que ele tá naquele cenário. Ou será que tem outra solução?
Bom, basicamente é isso, eu não quis colocar ainda código pro personagem ir pra cima no pulo porque acho que já tinha conteúdo demais pra escrever. Vocês acham que essa parte ficou cansativa demais? Desculpa compartilhar os meus achismos sobre os códigos, não sei se é tão útil, mas acho que pode ser útil pra outras pessoas que não sabem, pra tentar entender a lógica em cima da coisa. Só que não sei né... Talvez eu esteja errado.
CONFIRA AQUI A PARTE 06 >>>
CONFIRA AQUI A PARTE 06 >>>
0 Comentários