Tutorial: GameMaker Studio – Parte 14: Finalizando o Jogo

No último tutorial ensinei a integrar o Facebook no nosso jogo.

Hoje vamos finalizá-lo dando alguns retoques à parte, como por exemplo, fazer com que a bola saia quando o jogador quiser e a bola deixar um rastro.

Também eliminaremos algumas falhas que existem no jogo.

Então vamos começar!

Segura a bola aí!

No estado atual, com a bola sendo disparada assim que começa o jogo, pode ser muito ruim para o jogador desatento. Então, vamos fazer com que a bola saia do lugar quando o jogador indicar.
Abra o obj_bola e no evento Create, adicione o seguinte código:

01. if (instance_number(obj_bola)==1){
02.   liberar = false;
03. }else{
04.   liberar=true;
05. }

A condicional serve para verificar se existe mais de uma bola em jogo, caso que ocorre quando pega o item adicionar mais uma bola. Se existir, então o jogo já está em andamento e a bola deve partir de imediato. Se não existir, então a bola vai esperar o comando do jogador. No mesmo evento, não esqueça de remover o “Set direction and Speed of Motion” que foi adicionado previamente.

Agora, crie um evento “Step” neste mesmo objeto e adicione o seguinte:

01. if (liberar == false && mouse_check_button_pressed(mb_left)){
02.    liberar = true;
03.    direction = direction+random_range(45,135);
04.   speed = 4;
05.}

E está pronto. A bola agora ficará parada até que o jogador clique na tela para dar a partida.

 

Rastro de Fumaça

Vamos fazer com que a bola, enquanto estiver em movimento, deixe um rastro de fumaça. Aqui nós usaremos o sistema de partículas que o próprio GameMaker já possui. Então, abra o obj_bola e crie um evento “End Step”. Isso significa que o código a ser inserido vai ser executado somente depois que o código principal já tiver sido executado. Agora, insira o seguinte código:

01. if ( liberar == true){
02.    effect_create_above(ef_flare, x – ((x – xprevious) * 2), y – ((y – yprevious) * 2), 0, c_yellow);
03.}

E está pronto. O código vai verificar se a bola foi liberada. Se tiver, ele usará um efeito chamado flare, nas posições calculadas no código e na cor amarela.

 

C-C-Combo Incorreto

Esse é um dos erros que tem no jogo. Caso a bola fique presa por um tempo entre duas flores que estão desaparecendo, a cada batida na flor ele vai pontuar e aumentar o combo. Para evitar este erro, abra o obj_bola e no evento “Colisão com as Flores”, delete o comando “Bounce against all object” e inisira o seguinte código:

01. if (other.destruir == false){
02.     move_bounce_all(false);
03   // Todos os outros códigos que já estavam no Script
04. }

Este código verificará se a flor está no estado de destruir e somente vai validar os pontos quando o mesmo não estiver em tal estado. Atenção, todo código que estiver já no script deste evento vai estar dentro deste bloco do IF.

 

Pontos do Passado

Essa falha consiste no seguinte: você jogou uma vez, mas deu Game Over e você reiniciou o jogo. O jogo recomeçou, mas sua pontuação continua a mesma. É uma falha bem simples de resolver. Abra o rm_gameOver e clique em “Creation Code” da aba “Settings”. Adicione o seguinte código:

01. score = 0;

E pronto. Sempre que der Game Over, a pontuação será zerada.

 

Considerações Finais

Então pessoal, o jogo está finalizado e este foi o penúltimo tutorial desta série. No próximo tutorial explicarei como funciona o processo de publicação do jogo e o que é necessário para o mesmo em diversas plataformas. Portanto, não perca o último tutorial.

Thalisson Christiano de Almeida

Formado em Ciência da Computação (UDESC). Foi Programador da Céu Games e professor do Técnico em Informática do SENAI-SC. Atualmente, trabalha na empresa By Seven. Já foi jogador de xadrez e praticou kung-fu, ambos por 4 anos. Hoje é praticante do Jiu-jitsu, esperando que não fique nos 4 anos. Não tem preferência de tipos de jogos em especifico, variando desde jogos casuais de Facebook até jogos mais hardcore.