Jogo Clone – Google T-Rex

 

Hoje construiremos um jogo muito parecido com aquele do dinossauro que o Google mostra quando estamos sem internet.

 

Para isso crie um projeto com a opção “New empty project”

 

Defina o tamanho do Layout para 2400 x 960

E o tamanho da janela do jogo para 1200 x 480

Movendo o cenário

 

Para este projeto em específico utilizaremos um objeto Sprite para ser nosso “chão”, então adicione um objeto deste tipo ao nosso projeto e importe da pasta assets > sprites, um arquivo chamado “gound.png”.

 

Centralize o objeto na tela e seu projeto deverá estar como abaixo:

Para melhores resultados quando for centralizar, mude o grid para 16 px.

Adicione os Behaviors Solid e Bullet ao chão.

O comportamento Bullet faz com que nossa tela se mova sozinha, rode o jogo e veja você mesmo.

 

Como você pode ver, a tela está “andando” para o lado errado, podemos consertar isso da seguinte forma:

 

Nas propriedades do comportamento “Bullet”, altere o “Set angle” para “No”.

Na sua folha de programação crie um evento do Typo System e escolha a condição “On start of layout”.

 

Na ação, escolha o Sprite do chão que criamos e escolha a ação “Set angle of motion”.

 

Na nova janela que se abrirá escolha o valor 180 e coli quem “Done”.

 

O resultado será como o visto abaixo:

 

Rode seu jogo e verá que agora a tela está indo na direção correta!

Cenário em loop infinito

 

Para conseguirmos o efeito de um cenário infinito primeiro copie o chão e cole-o logo em seguida, na mesma altura e sem deixar espaços como pode ser visto abaixo.

 

Feito isso vá em sua folha de programação e adicione um novo evento, escolha o Sprite do chão e selecione a condição “Compare X” e preencha a nova janela como mostrado na imagem abaixo.

 

Importante: Se você renomeou seu Sprite que contém o chão, você deverá usar o nome que escolheu no lugar do “Sprite” na fórmula acima.

 

Adicione uma ação do tipo Sprite (ou o nome que colocou para seu chão) e selecione a ação “Set X”, na nova janela aberta preencha o campo como está exemplificado abaixo.

 

Importante: Se você renomeou seu Sprite que contém o chão, você deverá usar o nome que escolheu no lugar do “Sprite” na fórmula acima.

 

O resultado:

 

Rode seu jogo. Agora o cenário está infinito!

O que está acontecendo aqui?

 

De maneira simplificada, o que acontece é:

  • Quando o Sprite de chão original acaba, o cenário continua, mas dessa vez mostrando aquela cópia que fizemos;

  • O programa detecta quando a cópia do Sprite do chão termina e move o Sprite original para o final da cópia;

 

E essas duas ações ficam em loop eterno, simulando nosso cenário infinito!

Fixando personagem

 

Adicione um novo Sprite ao nosso projeto e na pasta de assets faça as importações para criar a animação de andar do nosso dinossauro.

 

Dica: Deixe a opção “Loop” da animação como “Yes”.

 

Não esqueça de adicionar o comportamento de plataforma ao seu dino.

 

Se rodar seu jogo agora verá que ele não se movimenta de acordo com desejado. Fixar ele na tela e só permitir pulos é o que queremos.

 

Vá a sua folha de programação e adicione um novo evento do tipo System e selecione a condição “Every Tick” adicione uma ação e escolha o Sprite2 (o do dinossauro) e selecione a opção “Set X” e finalmente, coloque o valor 128 na janela que aparecer.

 

O resultado deverá ser semelhante a esse:

Rode seu jogo e agora estará tudo perfeito!

 

Caso seu personagem esteja “andando estranho” verifique seus sprites, na opção “set collision polygon” para que todos estejam como mostrado abaixo (com apenas quatro pontos nas extremidades).

Gerando obstáculos aleatoriamente

 

Crie um objeto do tipo Sprite e importe a imagem cactus1.png da pasta assets, para deixa-lo bonitinho.

 

É importante que você adicione um desses objetos na tela, recomendo que seja no final do cenário.

 

Adicione o comportamento de plataforma ao cacto e selecione “No” na propriedade “Default controls”.

 

 

 

 

 

 

 

 

 

Na folha de programação adicione um novo evento, do tipo System e selecione a condição “Every X seconds” e preencha o campo da nova janela como mostrado abaixo:

 

Isso diz que queremos que um novo inimigo seja criado a cada intervalo de tempo que seja entre 1 e 5 segundos.

 

Adicione uma ação, escolha System e escolha a opção “Create object” e preencha os campos como mostrado abaixo.

 

 

 

Isso faz com que um novo cacto seja criado na nossa tela, a uma distância de no máximo 1000 entre um e outro (cria fora da tela para dar um efeito legal) e todos na mesma altura.

 

Legal né? Rode seu jogo e verá o ótimo resultado!!!

Exercício individual:

 

Modifique o projeto, ou melhore-o ou, se desejar, simplesmente complete-o, mas o importante é usar tudo aquilo que aprendeu até agora.

 

Pesquise no portal ou pergunte do seu professor coisas que não lembre, mas não pare!

Sugestões de melhoria:

  • Adicionar morte ao tocar nos cactos.

  • Adicionar sons.

  • Adicionar pontuação

  • Adicionar pterodáctilos.