Inicio     |     Sobre     |     GitHub     |     Games     |     Contato                        

sábado, 14 de janeiro de 2017

[Tutorial / Intermediário] Desenvolvimento do protótipo flappy dragon eat coin



Nesse artigo estou postando um tutorial simples e rápido relacionado ao desenvolvimento do protótipo de jogo flappy dragon eat coin. O tutorial não será muito detalhado por isso para conseguir reproduzi-lo pode ser necessário alguma experiencia com a engine Unity e com a linguagem de programação C#, as artes e assets podem ser baixadas junto com o projeto ou nos sites a seguir:


Download do projeto: [Mega] [MediaFire] [4Shared]


Alguns sites para download de artes: [Link1] [Link2] [Link3]
Algumas artes usadas nesse protótipo são creditadas á Kenney (www.kenney.nl)

Baixe o executável: [Link]

A proposta é criarmos vários protótipos de mini jogos em vários estilos diferentes e com isso reunir um acervo de assets, algoritmos, e mecânicas para quando formos trabalhar com um projeto maior ou mais complexo termos grande parte do trabalho "pronto", isso agilizará e facilitará o desenvolvimento, e é claro que estarei disponibilizando tudo.

1. O protótipo de flappy dragon eat coin é simples e leve, possui as seguintes telas, menu, sobre, jogo, game over e venceu, na ideia inicial ele possuiria um ranking geral de jogadores que será deixado para ser implementado em outras versões ou no próximo projeto. No Unity essas telas são chamadas de cenas, então para cada quadro do jogo criamos uma cena como na imagem abaixo:



2. Vamos começar desenvolvendo o jogo em si, começando pelo cenário, independente de quantos tipos de obstáculos seu jogo terá é importante diferenciar o que é fundo, o que é obstáculo, o que é "moeda" (que dá pontos ao jogador) e o que é o jogador, essas são as 4 principais composições do jogo.



3. Primeiro garanta que os sprites estão configurados corretamente.



4. Agora, podem ser colocados na cena os sprites ligados ao cenário, primeiro coloque o/os fundos, depois o solo, dica: use objetos vazios para organizar melhor cenas com muitos elementos e objetos.



5. Agora vamos configurar os obstáculos, crie uma tag "Obstaculo", e crie um layer que vamos chamar de "WeirdPhysics", coloque ambos em todos os obstáculos, adicione também um Rigidbody e um Collider e configure como na imagem:



6. Espalhe os obstáculos no cenário como desejar



7. Agora vamos configurar a layer que criamos clique em Edit > Project Settings > Physics 2D e desabilite "WeirdPhysics"


8. Em seguida vou adicionar as moedas, no jogo decidi usar 3 tipos de moedas, a de bronze que quando pega atribui 1 ponto ao jogador e será a que está em maior quantidade na cena, a de prata em menor quantidade e concede 5 pontos, e a de outro que além de mais rara está em pontos muito difíceis de ser pega e atribui 10 pontos. Com isso criei 3 tags uma para cada moeda (moeda01, moeda02 e moeda03) e a todas as moedas adicionei um corpo rígido (Rigidbody 2D) e um Circle Collider 2D.



9. Distribua as moedas pelo mapa.



10. O jogador será controlado pelo usuário, escolhemos um modelo animado onde cada sprite está cortado e quando arrastamos todos os cortes juntos para a cena o Unity abrirá uma opção para salvar a animação, isso criará uma pasta contendo os arquivos de animação, de dois clique na animação para abrir a aba Animator, clique na caixa com o nome da animação que salvou e em speed diminua para 0.5, isso diminuirá a velocidade da animação.



11. Adicione um Rigidbody e um Collider no Player.



12. Agora antes de começar a programar vamos posicionar os itens da UI (interface de usuário ou user interface), as duas opções de controle do personagem no meu jogo são pela tecla espaço do teclado ou pressionando o botão "UP" com o mouse, então crie um button clicando em Game Object > UI > Button, configure o botão da forma que desejar, dentro do Canvas crie toda a UI no caso desse jogo no topo da tela posicionei as moedas e na frente um text onde é mostrado o numero de moedas de cada tipo que o jogador pegou, também criei a imagem exibida inicialmente enquanto o jogo estiver pausado, criei essa pausa inicial para que o jogador se prepare antes do jogo iniciar, para que o jogo também não comece com o dragão caindo, e no código será definido que assim que o jogador inicia o comando que faz o dragão "voar" o jogo é "despausado" e a imagem é desativada.



13. Vamos começar criando um pequeno código para a câmera seguir o dragão, crie um novo script C#, chamarei o meu de "MovCamera" e copie o seguinte código:


14. Coloque o código na câmera, ajuste a cor do fundo (background) e arraste o objeto Player no espaço da variável Trajeto, isso definira o Player como trajeto e fara com que a câmera o siga.



15. Em seguida, vamos incluir o seguinte código (C#) nas moedas, para que as mesmas sejam desativadas do mapa quando pegas.



16. Agora vamos para o código de controle do personagem e controle de pontos e da UI, crie um script C# e copie o seguinte código (não vou explicar o código parte por parte já que ele é simples e qualquer um com conhecimento breve de C# irá entender):



17. Adicione o código no Player e em menu pause coloque a imagem que criou para aparecer enquanto o jogo está pausado, e nos objetos text coloque cada texto em seu respectivo lugar.



18. Agora vamos montar as outras cenas, não se esqueça de usar button para fazer os botões, esse é o menu inicial:



19. Sobre



20. Game Over



21. Venceu (Quase uma cópia do game over)



22. Não se esqueça de garantir que o nome das cenas estará igual aos mesmos nos algoritmos dentro dos comandos (ex: SceneManager.LoadScene ("02Jogo");). Vamos para o código dos botões:


23. Adicione esse código nas câmeras de todas as cenas, em seguida em cada botão coloque a câmera no espaço do objeto dentro do On Click (), e selecione a função relacionada a cada botão.



24. Para finalizar vamos para o código que carregará os pontos do jogador nas cenas vencer e game over, para ambas o processo é o mesmo, coloque o código a seguir na câmera e adicione cada objeto texto em seu lugar.



24. b. 



Bom é basicamente isso, o processo é simples, o tutorial é indicado para quem já possui conhecimento em Unity e C#, caso seja iniciante estude um pouco mais ambos os assuntos e use os links das referencias para ter acesso a tutoriais mais detalhados.

Fontes que auxiliaram no desenvolvimento:

Nenhum comentário:

Postar um comentário