top of page

Flappy'bat Tap Tap Tap!!!

Foto do escritor: Willian MstachWillian Mstach

Que tal como terceiro post aqui do blog eu tentar deixar as coisas mais claras; tentarei fazer passo a passo dessa vez;

O segundo desafio começar, criar um clone de Flappy Birds; um jogo caótico que ja fez muitas pessoas quebrarem celulares;


Mas dessa vez eu resolvi iniciar de uma forma diferente, não fui diretamente para a engine; Resolvi antes de tudo criar um Mockup de como seria o jogo;


Comecei criando um personagem, pensei em pássaros, naves, aviões, balões; Então uma arte do Pinterest me chamou atenção, era um vampiro; Logo a ideia de fazer um morceguinho passando pelos muros de um cemitério apareceu;


Então com as sprites prontas, eu posso partir para a construção do jogo;


Estrutura geral;

Eu antes de começar a montar as coisas diretamente no Godot, decidi desta vez utilizar o https://app.hacknplan.com, para poder me organizar um pouco melhor nas coisas; um dos problemas que tive com o pong;


1. Player

Iniciei uma cena adicionando um RigidyBody2D, por que sabia que ele ja iniciava com física; então fuçando aqui e ali. consegui controlar a gravidade e o impulso que ele daria ao receber o Tap;

Cena (Player)

criei inicialmente duas variáveis; uma para definir a força do pulo e outra para definir o inicio de partida, para que o personagem não entrasse na tela ja caindo;

Cena (Player)

na função ready eu inicio com a gravidade desligada;

Cena (Player)

diferente do Pong da ultima vez, eu resolvi tentar criar funções para as coisas, para poder ter um melhor controle do código todo; Então iniciei criando uma função de start game, Ela vai lidar com tudo que envolva o inicio da partida, como no caso, ligar a gravidade e definir que o jogo começou;

Cena (Player)

e a outra função que criei foi a tap que é responsável por dar o impulso ao personagem quando apertar espaço. Aqui eu tentei de algumas formas, e tentando mover a position do player não funcionou muito bem;


2. Obstáculos

Para a parte dos obstáculos, eu resolvi montar ele em 2 cenas diferentes.


1 . Uma contendo apenas um obstáculo, com sua colisão e sprite;

2. Depois eu fiz uma segunda cena, aonde coloquei esse obstáculo duplicado, um sobre o outro deixando um espaço ente eles;

E por fim eu juntei eles a cena principal aonde vou instanciar eles de forma aleatória;


1
2. Cena (LevelWalls)

A ideia é fazer com que eles apareçam fora da tela e se movimentem em direção ao player; para não ficar uma coisa repetitiva, no Flappy Birds eles são criados em alturas diferentes;


Cena (Main)

Então a partir de um função de Timeout de um timer, eu defini um tempo, a sempre que a função chamar, ela vai criar uma instancia dentro de um nó especifico na cena principal; A posição de criação que coloquei por enquanto é provisória ainda não sei se vai ser assim mesmo que vai funcionar;


Cena (LevelWalls)

para a movimento eu apenas criei uma variável de velocidade para poder controla melhor; e adicionei a posição. Também me certifiquei de que quando ele sair da tela ele sera destruído para não ocupar memoria;


Caso o player colidir com um dos obstáculos ele vai chamar a Scene novamente, reiniciando assim o jogo, provisório, pois pretendo logo mudar para um tela de Score.

Cena (Barrier)

3. Efeito Parallax

Uma coisa boa que vi da Godot é a facilidade que ele dão ao implementarem coisas simples na engine. uma delas é o efeito parallax, apenas criei uma cena e adicionei todos as minhas artes e tava pronto o sorvetinho;


E por enquanto ele ficou assim;



4. Pontos



O sistema de pontos de um FlappyBird é bem simples, você passa entre os canos e ganha um ponto; Eu resolvi criar um efeito visual mais agradável, então o morceguinho vai coletar esferas de sangue entre os obstáculos;

Foi bem simples, eu coloquei ela na mesma cena que cria os dois obstáculos, a "LevelWall" e adicionei uma colisão com o jogador;

Adicionei uma UI simples também, como uma cena separada; utilizei um NinePatchRect pra poder colocar o texto dentro;

E na parte de códigos, ali aonde eu estava printando "Ponto", mudei para ele somar a uma variável global;

E até esse ponto o jogo esta concluído e funcional, você pegar pontos e é isso; A partir de agora eu vou começar a mexer em partes que dão um pouco mais de charme para uma gameplay, como sons, menus e user interface;


5. Melhorando o jogo (Sons, UI e Menus)

Quando se trata de som, musica eu sou uma negação, entao procurei em alguns sites alguns fx gratuitos; achei uns bacanas e algumas musicas também neste site;


Adicionei alguns sons, como as asas batendo, uma colisão com os obstáculos, a coleta da orbezinha de sangue, e uma musica de background; para colocar eles não achei muito complicado, bem simples na real;


Um caixa de score ao final do jogo mostrando para o player a pontuação atua dele é uma ótima forma de fazer ele querer jogar novamente; Então criando uma cena nova de game over, e utilizando alguns nós de controle, como Label e NineRect;

Acrescentei um menu simples também apenas para não iniciar diretamente na tela do jogo.


Considerações finais

Após um dia e meio, eu decidi finalizar. Tinham muitas ideias na cabeça pra ir deixando o jogo cada vez melhor, mas envolviam coisas que ainda preciso estudar. Então como segundo jogo do desafio, acredito que este esteja concluído;


Preciso estudar um pouco mais sobre emitir sinais, e organização geral;


Mas o resultado esta ai, quem quiser testar fique a vontade;


E me siga nas minhas redes sociais;


até a próxima



;

63 visualizações0 comentário

Posts recentes

Ver tudo

Коментарі


bottom of page