full screen background image

Tutorial: GameMaker – Criando um Jogo de Nave

Tutorial: GameMaker – Criando um Jogo de Nave

Olá, galera do Fábrica de Jogos! Tudo bem com vocês? Hoje vamos aprender sobre como criar um pequeno Jogo de Nave no GameMaker Studio

Antes de mais nada, quero ressaltar que esse tutorial é para aqueles que já possuem os conhecimentos básicos do GameMaker, como criar Sprites, Objects, Rooms, etc. Então, se você ainda não possui tais conhecimentos, recomendo a leitura dos links abaixo:

Tutorial: GameMaker – Como fazer o personagem andar?

Tutorial: GameMaker – Criando Menu para Jogo

Tutorial: GameMaker – Criando um Jogo de Corrida

Antes de começar a praticar no GameMaker, assista o vídeo a seguir que mostra o resultado final de mais um jogo completo criado juntamente com os alunos da Turma de Criação de Games na Escola Evolutime. É apenas a apresentação do Game, mas mostra o passo a passo de como criar e configurar esse Jogo de Nave no Tutorial abaixo e também em meu Canal no Youtube. Não deixe de conferir!

GameMaker – Criando um Jogo de Nave (Apresentação)

Link para download do programa: GameMaker Studio

Aprenda o passo a passo de como criar jogos 2D para PC no GameMaker Studio: Aulas GameMaker

Chega de papo! Vamos praticar? ^^

Abra o GameMaker Studio e crie um novo Projeto. Em seguida, siga as etapas abaixo.

  1. Primeiro, vamos criar as 4 Sprites do Jogo.

Clique com o Botão Direito em cima de Sprites e selecione a opção Create Sprite. Na Janela de Propriedades da Sprite, clique em Load Sprite, selecione cada imagem abaixo e renomeie como na figura acima:

OBS.: Para realizar o procedimento, você precisa salvar as figuras em alguma Pasta do seu PC.

  1. Agora, vamos criar os objetos do Jogo. Clique com botão direito em Objects e selecione Create Object. Selecione cada sprite a cada objeto correspondente. Figura abaixo:

Na janela de Propriedades do “obj_tiro”. Renomeie o objeto como “obj_tiro” em seguida, selecione a Sprite “tiro”. Na Janela de Eventos, adicione o evento “Create” e na Janela de Ações, adicione a ação “Speed Vertical”, e defina o valor para -25. Marque a caixa “Relative” e clique em Ok.

  1. Ainda nas Propriedades do “obj_tiro”. Na Janela de Eventos, adicione o evento Colission com o “obj_nave_inimiga” e na Janela de Ações, adicione a ação “Set Score”, e defina o valor para 1. Marque a caixa “Relative” e clique em Ok. Ou seja, toda vez que o tiro colidir com a nave inimiga ganharemos 1 ponto.

  1. Ainda nas Propriedades do “obj_tiro”. No evento Colission com o “obj_nave_inimiga”, agora adicione a ação “Destroy Instance” e selecione a opção “Other” e clique em Ok. Ou seja, toda vez que o tiro colidir com a nave inimiga a nave inimiga será destruída.

  1. Ainda nas Propriedades do “obj_tiro”. No evento Colission com o “obj_nave_inimiga”, agora adicione a ação “Create Effect” e selecione a opção “Self”. Em type, selecione o efeito de “explosion” e no campo size, selecione “small”. No campo color, selecione a cor amarelo marque a caixa “Relative” e clique em Ok. Ou seja, toda vez que o tiro colidir com a nave inimiga ganharemos 1 ponto, a nave inimiga será destruída e ocorrerá o efeito de explosão. Clique em Ok novamente para salvar as Propriedades do “obj_tiro”.

  1. Nas Propriedades do “obj_aviao”. Renomeie o objeto como “obj_aviao” em seguida, selecione a Sprite “aviao”. Na Janela de Eventos, adicione o evento “Keyboard – Space” e na Janela de Ações, adicione a ação “Create Instance”. Selecione o “obj_tiro”, defina o valor X para 25 e o valor Y para -25. Marque a caixa “Relative” e clique em Ok.

  1. Ainda nas Propriedades do “obj_aviao”. Na Janela de Eventos, adicione o evento “Keyboard” para Left, Up, Right e Down. Na Janela de Ações, adicione a ação “Jump to Position” e defina os seguintes valores para X e Y.(Figuras abaixo).

Left – X -5

Up – Y -5

Right – X 5

Down – Y 5

  1. Nas Propriedades do “obj_nave_inimiga”. Renomeie o objeto como “obj_nave_inimiga” em seguida, selecione a Sprite “nave_inimiga”. Na Janela de Eventos, adicione o evento “Create” e na Janela de Ações, adicione a ação “Move Fixed”. Clique na seta para baixo e defina o speed para 5. Marque a caixa “Relative” e clique em Ok.

  1. Ainda nas Propriedades do “obj_nave_inimiga”. No evento Colission com o “obj_aviao”, agora adicione a ação “Set Lives”. No campo New lives, coloque -1, marque a caixa “Relative” e clique em Ok.

  1. Ainda nas Propriedades do “obj_nave_inimiga”. No evento Colission com o “obj_aviao”, agora adicione a ação “Destroy Instance”. Marque a opção “Self” e clique em Ok. Ou seja, toda vez que a nave inimiga tocar no avião, ela será destruída e perderemos 1 vida no jogo.

  1. Nas Propriedades do “obj_nave_inimiga”. Na Janela de Eventos, adicione o evento “Other – Outside Room” e na Janela de Ações, adicione a ação “Destroy Instance”. Marque a opção “Self” e clique em Ok.

  1. Nas Propriedades do “obj_controle”. Renomeie o objeto como “obj_controle” e não coloque nenhuma Sprite. Na Janela de Eventos, adicione o evento “Create” e na Janela de Ações, adicione a ação “Execute a piece of code”. Na janela que abrir digite o seguinte código. (Figura abaixo). Depois clique no visto para salvar as configurações.
 segundos=0;
 alarm[0]=30;

  1. Ainda nas Propriedades do “obj_controle”. No evento “Create”, adicione a ação “Set Score”. Defina o “new score” para 0 e clique em Ok. Ou seja, assim que inicia o Jogo a pontuação será 0.

  1. Ainda nas Propriedades do “obj_controle”. No evento “Create”, adicione a ação “Set Lives”. Defina o “new lives” para 3 e clique em Ok. Ou seja, assim que inicia o Jogo a pontuação será 0 e a quantidade de vidas será 3.

  1. Nas Propriedades do “obj_controle”. Na Janela de Eventos, adicione o evento “Alarm 0” e na Janela de Ações, adicione a ação “Execute a piece of code”. Na janela que abrir digite o seguinte código. (Figura abaixo). Depois clique no visto para salvar as configurações.
 segundos +=1;
 if(segundos ==5){
 instance_create(random(640),0,obj_vidas);
 obj_vidas.vspeed = 10;}
 if(segundos ==10){
 instance_create(random(640),0,obj_vidas);
 obj_vidas.vspeed = 10;
 segundos =0;}
 alarm[0] = 30;

OBS.: Cuidado! Verifique linha por linha para não digitar nenhum trecho incorreto.

Esse é o código para que “obj_vidas” caia de cima para baixo, a cada 5 segundos a uma velocidade vertical igual a 10.

  1. Nas Propriedades do “obj_controle”. Na Janela de Eventos, adicione o evento “Step” e na Janela de Ações, adicione a ação “Test Lives”. Na janela que abrir digite 0 no campo “value” e no campo “operation”, selecione “equal to”. Depois clique em Ok. (Figura abaixo).

  1. Ainda nas Propriedades do “obj_controle”. No evento “Step”, adicione a ação “Go to next room”. Ou seja, toda vez que a quantidade de vidas for igual a 0, o jogo irá para a próxima tela que exibirá a seguinte mensagem: “Você Perdeu!”. Ainda vamos criar essa mensagem. Calma! =)

  1. Nas Propriedades do “obj_controle”. Na Janela de Eventos, adicione o evento “Draw” e na Janela de Ações, adicione a ação “Execute a piece of code”. Na janela que abrir digite o seguinte código. (Figura abaixo). Depois clique no visto para salvar as configurações.
draw_text(500,10,segundos);

OBS.: Esse é o código que mostrará a variável “segundos” no Jogo.

  1. Nas Propriedades do “obj_controle”. No evento “Draw”, adicione a ação “Draw Score”. Na janela que abrir digite 20 no campo X e 10 no campo Y. Clique em Ok. (Figura abaixo).

OBS.: Essa é a configuração que mostrará a variável “Score” ou “Pontos” no Jogo.

  1. Nas Propriedades do “obj_controle”. No evento “Draw”, adicione a ação “Draw Lives”. Na janela que abrir digite 800 no campo X e 10 no campo Y. Clique em Ok. Figura abaixo.

OBS.: Essa é a configuração que mostrará a variável “Lives” ou “Vidas” no Jogo.

  1. Nas Propriedades do “obj_perdeu”. Renomeie o objeto como “obj_perdeu” e não coloque nenhuma Sprite. Na Janela de Eventos, adicione o evento “Draw” e na Janela de Ações, adicione a ação “Draw Scaled Text”. Na janela que abrir digite as seguintes configurações (Figura abaixo). Depois clique em Ok. Em seguida, clique em Ok novamente para salvar as Propriedades do “obj_perdeu”.

  1. Nas Propriedades do objeto “controle_nave_inimiga”. Renomeie o objeto como “controle_nave_inimiga” e não coloque nenhuma Sprite. Na Janela de Eventos, adicione o evento “Create” e na Janela de Ações, adicione a ação “Set Alarm”. Na janela que abrir defina o campo “number of steps” para 45. Depois clique em Ok. (Figura abaixo).

  1. Nas Propriedades do objeto “controle_nave_inimiga”. Na Janela de Eventos, adicione o evento “Alarm 0” e na Janela de Ações, adicione a ação “Create Moving”. Na janela que abrir faça as seguintes configurações, depois clique em Ok. (Figura abaixo).
object: obj_nave_inimiga

X: random(room_width-64)+32

OBS.: A linha de comando “random(room_width-64)+32” gera objetos aleatórios da nave inimiga no Jogo.

  1. Nas Propriedades do objeto “controle_nave_inimiga”. No evento “Alarm 0”, adicione a ação “Set Alarm”. Na janela que abrir defina o campo “number of steps” para 5. Depois clique em Ok. Depois clique em Ok. (Figura abaixo).

  1. Nas Propriedades do objeto “controle_nave_inimiga”. Na Janela de Eventos, adicione o evento “Alarm 1” e na Janela de Ações, repita os passos 23 e 24.

OBS.: Na ação “Set Alarm”, na janela que abrir defina o campo “number of steps” para 5 e o campo “in alarm no” selecione a opção “Alarm 0”. Depois clique em Ok. Dessa forma estaremos criando um loop infinito, em que sempre aparecerão naves inimigas na tela depois de alguns segundos.

  1. Ainda nas Propriedades do objeto “controle_nave_inimiga”. Adicione mais um evento “Alarm 2” e na Janela de Ações, adicione a ação “Create Moving”. Na janela que abrir faça as seguintes configurações, depois clique em Ok. (Figura abaixo).
object: obj_vidas

X: random(room_width-64)+32

OBS.: Dessa vez, selecionamos o “obj_vidas” que também aparecerá na tela do Jogo de forma aleatória.

  1. Ainda nas Propriedades do objeto “controle_nave_inimiga”. No evento “Alarm 2”, adicione a ação “Set Alarm”. Na janela que abrir faça as seguintes configurações, depois clique em Ok. (Figura abaixo).

OBS.: Na ação “Set Alarm”, na janela que abrir defina o campo “number of steps” para 7 e o campo “in alarm no” selecione a opção “Alarm 0”. Depois clique em Ok. Dessa forma estaremos criando um loop infinito, onde sempre aparecerão vidas na tela depois de alguns segundos.

  1. Nas Propriedades do “obj_vidas”. Renomeie o objeto como “obj_vidas” em seguida, selecione a Sprite “vidas”. Na Janela de Eventos, adicione o evento “Create” e na Janela de Ações, adicione a ação “Move Fixed”. Clique na seta para baixo e defina o speed para 5. Marque a caixa “Relative” e clique em Ok.

  1. Ainda nas Propriedades do “obj_vidas”. No evento Colission com o “obj_aviao”, agora adicione a ação “Set Lives”. No campo New lives, coloque +1, marque a caixa “Relative” e clique em Ok.

  1. Ainda nas Propriedades do “obj_vidas”. No evento Colission com o “obj_aviao”, agora adicione a ação “Destroy Instance”. Marque a opção “Self” e clique em Ok. Ou seja, toda vez que 0 “obj_vidas” tocar no avião, ele será destruído e ganharemos 1 vida no jogo.

  1. Nas Propriedades do “obj_vidas”. Na Janela de Eventos, adicione o evento “Other – Outside Room” e na Janela de Ações, adicione a ação “Destroy Instance”. Marque a opção “Self” e clique em Ok.

  1. Agora vamos criar as Telas do nosso Jogo. Clique com Botão Direito em Room – Selecione a opção “Create Room”. Crie apenas duas Rooms. (Figura abaixo).

  1. Na janela Propriedades da Room0, clique na Aba “objects”, selecione os objetos: “obj_aviao”, “obj_controle”, “controle_nave_inimiga” e coloque dentro da “room0”. Depois clique no “Visto” para salvar as alterações (Figura abaixo).

OBS.: Não se preocupe com o sinal de interrogação quando colocar os objetos “obj_controle” e “controle_nave_inimiga”. É porque não colocamos sprites nesses objetos.

  1. Repita o passo 32 e crie uma nova “room”. Na janela Propriedades da Room1, clique na Aba “objects”, selecione o objeto “obj_perdeu” e coloque dentro da “room1”. Depois clique no “Visto” para salvar as alterações (Figura abaixo).

  1. Pronto. Jogo concluído. Clique no Botão “Run the game” ou pressione a tecla “F5” para iniciar o jogo. (Figura abaixo).

  1. Se tudo estiver correto, o jogo iniciará e mostrará uma janela parecida com a da figura abaixo.

Depois de alguns segundos as naves inimigas cairão de cima para baixo tentando colidir com o avião. Você deve destruí-las pressionando espaço para atirar ou usando as setas direcionais para desviar, conforme foi configurado na criação do Jogo.

Se você perder todas as vidas no Jogo, aparecerá a janela abaixo.

Parabéns! Você acaba de criar um pequeno Jogo de Nave. =)

OBS.: O jogo está bem simples e também com algumas partes faltando, como o Menu do Jogo, Sons, Efeitos, etc. Mas, para fins didáticos e para você que está começando no mundo da criação de jogos, esse Tutorial pode ser o pontapé inicial para seus futuros projetos. Use as configurações apresentadas aqui, dê asas a sua imaginação e crie seus próprios jogos.

Confiram o Tutorial anterior para aprender como criar o Menu de um Jogo no GameMaker Studio. Depois utilize o conhecimento adquirido e crie um Menu Personalizado para o nosso Jogo de Nave 😉

É isso aí, pessoal! Espero ter ajudado!

Inscreva-se em meu canal para assistir e acompanhar as próximas vídeo aulas de GameMaker. Espero que gostem e compartilhem com os amigos.

Qualquer dúvida, é só deixar um comentário abaixo. Sugestões de aulas ou Tutoriais são sempre bem-vindas. ^^

Bons estudos e divirta-se!

Um forte abraço.



Diogo Pimenta

Cursou Análise e Desenvolvimento de Sistemas na FATEC Zona Sul - SP. Atualmente trabalha como Professor na Escola Evolutime. Dá aulas nos cursos de Informática, Hardware, Web Design e Criação de Games. Trabalha com o Desenvolvimento de Jogos com o GameMaker há 4 anos. Editor e criador do Blog Diogo Pimenta. Também curte músicas, violão e poesias. Seu jogo favorito é o Super Mario Bros.


Show Buttons
Hide Buttons