anterior
Tweet about this on TwitterPin on PinterestShare on LinkedInShare on Google+Email this to someoneShare on Facebook
QR CODE

GameMaker – Criando um Jogo de Nave

Jogo da nave

Olá pessoal! Tudo bem com vocês?

Hoje vou mostrar como criar um Jogo de Nave no GameMaker Studio.

 

Preparar…

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

Tutorial de GameMaker

GameMaker – Criando um Menu de um Jogo

 

Apontar e FOGO!!!

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

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

Sprites do Jogo

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

aviao_0 nave_inimiga_0 tiro_0 vidas_0

 

 

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

2. 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, conforme figura abaixo:

Objetos do Jogo

 

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.

obj_tiro_Event_Create_Action_Speed_Vertical

3. 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.

obj_tiro_Event_Colission_nave_inimiga_Set_Score

4. 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.

obj_tiro_Event_Colission_nave_inimiga_Destroy_Instance

5. 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”.

obj_tiro_Event_Colission_nave_inimiga_Create_Effect

6. 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.

obj_aviao_Event_Space_Action_Create_instance_of_object_obj_tiro

7. 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.(Figura abaixo).

obj_aviao_Event_left_Action_Jump_to_position 5,0

Left – X -5

 

Up - Y -5

Up – Y -5

 

obj_aviao_Event_left_Action_Jump_to_position 5,0 Right

Right – X 5

 

obj_aviao_Event_left_Action_Jump_to_position 5,0 Down

Down – Y 5

 

8.  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.

obj_nave_inimiga_event_create_action_start_moving_in_a_direction_down5

9. 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.

obj_nave_inimiga_event_colission_obj_aviao_action_set_lives

10. 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.

obj_nave_inimiga_event_colission_obj_aviao_action_destroy_instance

11. 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

obj_nave_inimiga_event_Other_Outside_Room_Action_Destroy_Instance

12. 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.

obj_controle_Event_Create_Action_Execute_a_piece_of_code

13. 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.

obj_controle_Event_Create_Action_Set_Score

14. 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.

obj_controle_Event_Create_Action_Set_Lives

15. 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.

obj_controle_Event_Alarm 0_Action_Execute_a_piece_of_code

OBS.: Cuidado! Verifique linha a 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.

 

16. 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).

obj_controle_Event_Step_Action_Test_Lives

17. 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! =)

obj_controle_Event_Step_Action_Go_To_next_room

18. 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.

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

obj_controle_Event_Draw_Action_Execute_a_piece_of_code

19. 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.

obj_controle_Event_Draw_Action_Draw_Score

20. 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.

obj_controle_Event_Draw_Action_Draw_Lives

21. 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”.

obj_perdeu_Event_Draw_Action_Draw_Scaled_Text

22. 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).

controle_nave_inimiga_Event_Create_Action_Set_Alarm

23. 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).

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

controle_nave_inimiga_Event_Alarm 0_Action_Create_Moving

24. Nas Propriedades do objeto “controle_nave_inimiga”. No evento “Alarm 0”, adicione a ação “Set Alarm”. Na janela que abrir faça as seguintes configurações. Depois clique em Ok. (Figura abaixo).

controle_nave_inimiga_Event_Alarm 0_Action_Set_Alarm 1 to 5

25. 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.

controle_nave_inimiga_Event_Alarm 1_Action_Create_Moving_and_Set_Alarm 0 to 5

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, onde sempre aparecerá naves inimigas na tela depois de alguns segundos.

controle_nave_inimiga_Event_Alarm 1_Action_Create_Moving_and_Set_Alarm_SegundaParte

26. 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).

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

controle_nave_inimiga_Event_Alarm 2_Action_Create_Moving

27. 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).

controle_nave_inimiga_Event_Alarm 2_Action_Set_Alarm 0 to 7

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á vidas na tela depois de alguns segundos.

28. 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.

obj_vidas_Event_Create_Action_Move_Fixed_Seta_Direcional_pra_Baixo

29. 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.

obj_vidas_Event_Colission_com_obj_aviao_Action_Set_Lives

30. 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.

obj_vidas_Event_Colission_com_obj_aviao_Action_Destroy_Instance

31. 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.

obj_vidas_Event_Other_Outside_Room_Action_Destroy_Instance

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

Create_Room_1

33. 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).

Room_1_Adicionando_os_objetos

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.

34. 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).

Room_2_Adicionando_o_objeto_perdeu

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

Clique_no_botao_Run_the_game_ou_pressione_F5

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

Jogo_da_Nave_concluido_1

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.

Jogo_da_Nave_concluido

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

Jogo_da_Nave_concluido_Você_Perdeu

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

OBS.: O jogo está bem simples e também faltando algumas partes 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.

Bons estudos e divirta-se! ^^


Sobre o Autor:
Diogo Pimenta – Instrutor em Capão Redondo. Cursando Análise e Desenvolvimento de Sistemas na FATEC Zona Sul. Dá aulas nos cursos de Informática, Hardware e Web Design. Curtam e compartilhem esse post e sugiram outros tutoriais para nossos instrutor postar!

Próximo

Postado por

Postagem Relacionada

mario bros
Criando o Jogo do Super Mario Bros com o GameMaker
Vamos aprender a criar o Jogo do #SuperMarioBros? ^^ Boa tarde, pessoal! Nessa aula, mostrarei os