GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» player não consegue andar
por lovn7 Qui 21 Nov 2024, 13:33

» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22

» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31

» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23

» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49

» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58

» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36

» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36

» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33

» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51

» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28

» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18

» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08

» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10

» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16

» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40

» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01

» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45

» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34

» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28

» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48

» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54

» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14

» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50


Primeiro Jogo #2 - Detectar Objetos, Vida e Pontos

2 participantes

Ir para baixo

vida - Primeiro Jogo #2 - Detectar Objetos, Vida e Pontos Empty Primeiro Jogo #2 - Detectar Objetos, Vida e Pontos

Mensagem por dharrison Ter 23 Set 2014, 11:33

Crie seu Primeiro Jogo Completo #2
- Detectar Objetos, Vida, Pontos e Efeitos -


Título: Crie seu Primeiro Jogo Completo #2 - Detectar Objetos, Vida, Pontos e Efeitos
Versão do GM: Game Maker 8.0, 8.1 PRO  GM8 e também GMS:Standard
Dificuldade: Fácil
Requer Extensões: Não.
Requer DLLs: Não.
Tags: Primeiro Jogo, Top Down, GML, Detectar Objetos, Colisões, Vida, Pontos.


Introdução

Eai pessoal, belezinha? sorrindo

Continuando a série de Aulas para a criação de um game completo Top Down, vamos ver algumas formas de se Detectar e Coletar Itens, e outras coisitas mais...

Antes de começarmos é importante que você já tenha uma noção básica sobre o Game Maker e GML, que você poderá aprender acessando essas aulas do Alex FC. Além disso, através deste tópico gracioso você poderá baixar e jogar o jogo que criaremos durante as aulas, é legal para se conhecer tudo que iremos criar (no momento da criação dessa primeira aula o jogo estava na versão 1.0, pode ser que quando você ler esse tutorial o jogo possua mais funções).

Além disso essa é a parte #2 da criação, caso você não tenha feito a parte #1, CLIQUE AQUI


Criando Itens e Efeitos

Para continuarmos, vamos criar objetos para os itens coletáveis, como Moedas, Comida e Pedras Preciosas, e colocá-los dentro de um Grupo chamado Pontos e Vida, nenhum dos Objetos será sólido e deve ser atribuída a Máscara Mask (quadrado preto) a todos.

Para criar novos Grupos clique com o botão direito do Mouse e selecione Create Group.

Como já tratamos desse básico na Aula #1, segue uma imagem para referência apenas:
vida - Primeiro Jogo #2 - Detectar Objetos, Vida e Pontos 34y6ufs

Para criarmos os Efeitos, usaremos objetos com sprites. Esse não é o melhor método, mas como nosso game é simples, ele funcionará bem. Repita os passos acima, exceto o passo da Máscara, pois nossos Efeitos não terão Colisão. O Resultado deve ser semelhante a isso:

vida - Primeiro Jogo #2 - Detectar Objetos, Vida e Pontos 14d1tao

Por hora vamos deixar todos esses Objetos sem programação alguma.


Definindo Novas Variáveis no obj_explo

Agora vamos adicionar duas variáveis ao obj_explo, serão 2 variáveis globais, sendo uma para controlar a vida e a outra os pontos. Esta que controla os pontos será alterada no futuro para evitar problemas, mas por hora não é necessário se preocupar com isso. Siga os passos:

1. Clique duas vezes no Piece of Code  Action Code  dentro do evento Create Event Create do obj_explo
2. Adicione o seguinte código abaixo do que fizemos na aula anterior:
Código:
//Aula 02
global.vida=30 //Define a Vida para 30 (3 corações, futuramente)
global.pontos=0 //Define os pontos para 0 ao começar a Room, isso será alterado futuramente

Digite exatamente como está acima, lembrando que tudo que vem depois do // é comentário e deverá ficar colorido (geralmente verde). A explicação do uso de cada variável está no próprio código.

Segue a imagem para referência:
vida - Primeiro Jogo #2 - Detectar Objetos, Vida e Pontos Kc1ly1

IMPORTANTE: Esse código foi definido no Evento CREATE Event Create do Objeto, isso significa que ele Define variáveis que não existam antes, porém toda vez que o Objeto for Criado (Create né...) essas variáveis serão redefinidas, além disso o Create acontece antes mesmo da Room carregar completamente. Por isso futuramente corrigiremos o global.pontos=0, porque se permanecer assim a cada nova fase o placar irá zerar novamente.

Dessa forma definimos as Novas Variáveis que nosso obj_explo usará.


Detectando Itens e Coletando

Existem várias formas de se fazer isso, mas no nosso game não criaremos Colisões: usaremos outra função do GM chamada distance_to_object(). O código será quase o mesmo em todos os nossos itens.

1. Abra o obj_10 e clique sobre Add Event > Step Event Step e então arraste um Piece of Code  Action Code  para o campo Actions
2. O Editor se abrirá novamente, insira nele este código:
Código:
//COLISÕES
if distance_to_object(obj_explo)=0 //Se a distancia do Item para o Player for 0...
{
global.pontos+=10 //O Player ganha 10 Pontos extras
instance_create(x,y-8,obj_10pts) //É criado o Efeito 10pts um pouco acima do Item
instance_destroy() //O Item é "coletado" (na vdd é destruído)
}

Bem simples não é? Agora é só adicionar o mesmo código nos outros objetos, mudando apenas a quantidade de Pontos e o Efeito criado. Segue a lista de como configurar cada um:

Banana: global.pontos+=5; global.vida+=10; instance_create(x,y-8,obj_5pts)
Maça: global.pontos+=5; global.vida+=20; instance_create(x,y-8,obj_5pts)
obj_50: global.pontos+=50; instance_create(x,y-8,obj_50pts)
obj_100: global.pontos+=100; instance_create(x,y-8,obj_100pts)
obj_1000: global.pontos+=1000; instance_create(x,y-8,obj_1000pts)
obj_moeda: global.pontos+=5;

Eu acredito que não seja legal criar um Efeito para as Moedas, pois existem muitas no cenário, isso criaria uma grande poluição visual.

Tendo configurado todos objetos, já podemos ganhar pontos e aumentar a vida do jogador.


Animando os Efeitos

Nossa animação para os efeitos de Itens serão bastante simples: elas irão subir por aproximadamente 1 segundo e desaparecer.

1. Abra o obj_5pts e clique sobre Add Event > Create  Event Create  e então arraste um Piece of Code Action Code  para o campo Actions
2. O Editor se abrirá novamente, insira nele este código:
Código:
vspeed=-1.5 //Velocidade para cima de 1.5
alarm[0]=20 //Define o Alarm[0] para 20 frames/steps
/*sound_play(snd_pontos) futuramente tocará um som, estamos deixando o código como comentário para não dar bugs no game, mas também para não nos esquecermos dele.*/
3. Adicione um Alarm: Add Event > Alarm Event Timer  
4. Arraste para o campo Actions um Destroy Instance  Action Destroy

Nos passos 3 e 4 nós adicionamos um Evento Alarm, que é como um despertador: ao Alarm chegar a 0 (lembrando que definimos ele como 20 Steps), algo acontece.
No caso adicionamos o Botão Destroy Instance, que é a mesma coisa que adicionar um Piece of Code e digitar instance_destroy() dentro dele, mas o botão acabou sendo mais prático sorrindo

Agora repita o mesmo processo para outros Efeitos, porém no obj_1000pts substitua sound_play(snd_pontos) por sound_play(snd_diamante)

Com isso nossos Efeitos estarão completos.


Testando a Primeira Fase

Depois de configurar tudo, vamos testar.
Abra a Room0 e coloque mais paredes e distribua os itens conforme desejar. Após terminar, salve o Projeto como Aula02 e clique no Play Verde para testar. Tudo deve estar funcionando corretamente.

Segue uma imagem de referência:
vida - Primeiro Jogo #2 - Detectar Objetos, Vida e Pontos 15en44


Fim da Aula #2

Com isso finalizamos a Engine da Aula #2, peguei um pouco mais leve dessa vez para que você se acostume com a rotina de criar objeto > configurar > testar. Na próxima aula adicionaremos inimigos simples e poderemos começar a atirar :C:

Obrigado por acompanhar essa aula e comente para dar uma força pro tópico!

E lembre-se:  Dúvidas? Comente!
vida - Primeiro Jogo #2 - Detectar Objetos, Vida e Pontos Konata89


Última edição por dharrison em Ter 23 Set 2014, 11:45, editado 2 vez(es)
dharrison
dharrison

Games Ranking : Nota B

Notas recebidas : A - B
Data de inscrição : 04/02/2009
Reputação : 120
Número de Mensagens : 1363
Prêmios : vida - Primeiro Jogo #2 - Detectar Objetos, Vida e Pontos Empty

Medalhas x 0 Tutoriais x 9 Moedas x 0

Ouro x 0 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 2.0
  • C#


Ir para o topo Ir para baixo

vida - Primeiro Jogo #2 - Detectar Objetos, Vida e Pontos Empty Re: Primeiro Jogo #2 - Detectar Objetos, Vida e Pontos

Mensagem por Mateus O de Andrade Ter 23 Set 2014, 11:37

E ai dharryson,
Cara, já estava na hora!! Estava ansioso pela continuação de seu tutorial.
Obrigado pela postagem e boa sorte com seu trabalho!
Mateus O de Andrade
Mateus O de Andrade

Games Ranking : Nota D

Data de inscrição : 25/03/2014
Reputação : 37
Número de Mensagens : 410
Prêmios : vida - Primeiro Jogo #2 - Detectar Objetos, Vida e Pontos Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

vida - Primeiro Jogo #2 - Detectar Objetos, Vida e Pontos Empty Re: Primeiro Jogo #2 - Detectar Objetos, Vida e Pontos

Mensagem por dharrison Ter 23 Set 2014, 11:44

@Mateus
Vlw o apoio cara, e agora estou me organizando melhor, o tutorial continuará pelo menos semanalmente Happy

Caso seja possível adicionar mais de um tutorial por semana eu farei
dharrison
dharrison

Games Ranking : Nota B

Notas recebidas : A - B
Data de inscrição : 04/02/2009
Reputação : 120
Número de Mensagens : 1363
Prêmios : vida - Primeiro Jogo #2 - Detectar Objetos, Vida e Pontos Empty

Medalhas x 0 Tutoriais x 9 Moedas x 0

Ouro x 0 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 2.0
  • C#


Ir para o topo Ir para baixo

vida - Primeiro Jogo #2 - Detectar Objetos, Vida e Pontos Empty Re: Primeiro Jogo #2 - Detectar Objetos, Vida e Pontos

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos