Aula 6 - Vamos explodir coisas.

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Qualidade Aula 6 - Vamos explodir coisas.

Mensagem por reddragon em Dom 08 Fev 2009, 18:02

Na aula anterior criamos nossa nave e montamos nossa bala. Então o que esta faltando agora? Nossos inimigos, vamos começar a montar.

Nesta aula iremos aprender duas coisas Path e Time Lines, mas antes:

Criemos um novo obj e vamos o chamar de obj_inimigo1 e adicione a imagem do inimigo 1 que foi dada aula passada agora mas será necessário fizemos uma correção vá até o sprite do iminigo1 e aperte em Edit Sprite e na aba transforn aperte rodate 90 clockwise a imagem rodara 90º sentido horário e pronto esta feita nosso correção para quem não entendeu espere que eu irei explicar mais para frente.

Bom agora se você simplesmente colo calo no campo e testa você vera que não acontece nada ele não explodi e só fica pareado. Mas tenho certeza que você quer o ver explodindo.

Muito bem, vamos começar fazendo com que a bala bata no inimigo e ele exploda.

Vamos adicionar em nossa nave inimiga1 um evento que se chama collision e selecione a bala como obj a ser colidido e nesse evento coloque o seguinte script:

Código:
with (other){instance_destroy()}
effect_create_above(ef_explosion,x,y,0,c_red)
instance_destroy()

Mas o que foi feito?

With é um comando que você usa para executar um script em outro obj como se estivesse dentro dele porque os scripts escritos em cada obj por padrão se referem ao obj onde eles foram escritos (isso pode ser mudado veja o drops sobre o editor de texto do GM) e o comando instance_destroy referisse ao obj onde ele esta escrito, mas se quisermos destruir um obj em um script que esta dentro de outro obj usaremos o with. Mas e o other? Ele não é uma var, mas funciona como, neste caso ele “carrega” o valor da id do obj que colidiu com você. Ai junta o with mais o other mais instance_destroy e o resultado será destruirmos o obj_bala que acertou a nave inimiga1.

O effect_create_above criara o efeito explosão que vemos quando a bala acerta nossa nave ef_explosion é o efeito que se refere a explosão (se você digitar ef_ no editor de texto aparecera no campo a baixo todos os efeitos que o GM faz, mude o efeito e veja como são os outros).

Agora vamos criar um Path, mas para que eles servem? Path do inglês quer dizer caminho e é isso mesmo um “caminha” que você monta e pode fazer um obj se mover por ele. E para que iremos usar isso? É para fazer a movimentação de nossa nave inimiga pela tela do jogo.

Criando um Path deve aparecer uma tela como essa:



Monte o seu como quiser, se você quiser suavizar as curvas é só marcar a opção Smooth curve, e também desmarque opção closed, a minha ficou assim:



Se você quiser copiar é só tentar montar com as mesmas coordenadas.

Legal, como eu faço o inimigo andar por esse caminho agora?

Você terá de por esse código no evento create de seu inimigo e tem dois jeitos por lib ou GML que são parecidos:

Por lib faça assim:



Por GML faça assim:

path_start(path, speed, endaction, absolute)

path = nome do path (ex.: path0).
speed = velocidade com que o path corre. Um valor negativo faz a instaância ir para trás.
endaction = o que acontecerá quando chegar no final do path:

0. finaliza ao chegar no final.
1. continua do início
2. continua da posição que está
3. reverte a direção, a instância faz o path de trás para frente.

absolute = determina se a instância fará o path da posição que está (false) ou de acordo com as coordenadas do path (true).

Esplicasao feita por Igor KinGamer e editada por RedDragon (eu mesmo).

Código:
path_start(path0, 5, 0, false)

Coloque um avião inimigo na room e teste o seu jogo.

Bom já esta ficando da hora, mas eu acho que ficaria melhor se a nave inimiga fica se virada para direção que ela esta indo.

Crie um novo evento chamado Draw. Draw do inglês quer dizer desenhar então será neste evento que iremos desenhar tudo que queremos no nosso jogo. Esse desenhar seria fazer aparecer um sprite uma barra de vida um texto um efeito muitas coisas e para começar vamos desenhar a nave inimiga1. O comando que vamos usar é um dos muitos que existentes no GM e seria o draw_sprite_ext, vamos explica lo:

No GM aparece assim:

draw_sprite_ext(sprite,subimg,x,y,xscale,yscale,rot,color,alpha)

sprite = é o lugar onde você coloca o nome do sprite que você vai usar, se você colocar sprite_index vai colocar o sprite que você definiu no obj
subimg = a sub imagem do sprite que se esta usando isto serve para quando o sprite tem mais de uma imagem.
x,y = são as coordenadas na tela que seu sprite ira aparecer.
xscale,yscale = são as escalas da imagem, xscale é a escala na horizontal, yscale é a escala na vertical, 1 é a escala em 100%, 2 = 200%, 0 = 0%.
rot = direção que o sprite vai estar apontado.
color = é uma mascara que você coloca junto com o sprite e modifica sua cor, se você não quiser que seja modificado coloque a cor c_white.
alpha = seria a transparência que o seu sprite vai ter, vai de 1 a 0 podendo aceitar números decimais como 0.5.

Bom, após essa explicação crie o evento Draw e nele coloque um execute code e adicione o seguinte script.

Código:
draw_sprite_ext(sprite_index,0,x,y,1,1,direction,c_white,1)

direction é uma variável que acumula o valor da direção do obj e Path modifica essa direção para fazer o seu obj se mover no sentido certo.

Teste seu jogo e veja como seu inimigo se movimenta se você gostou então ta ficando bom.

Agora remos criar nosso Time line.

Quando você criar um deve aparecer uma tela como essa:



Aperte em Add e adicione o step 0 e nele coloque o seguinte evento:

Execute code:

Código:
instance_create(obj_inimigo1,x,y)

E agora aperte em duplicate e duplique de 10 em 10 ate chegar aos 100. Deve ficar mais ou menos assim:



Agora vamos um novo obj e nomeio de obj_criador_inimigo e crie um evento create e nele coloque a lib Set Time Line assim:



Adicione um evento desses em seu jogo e teste para ver o resultado.

Galera e chega ao fim mais uma aula de GML quero agradecer a Igor KinGamer pela colaboração nesta aula e também agradeço a todos que estão acompanhando minhas aulas e quero agradecer principalmente a todos que me adicionarão no MSN e estão esclarecendo suas duvidas comigo.

Na próxima aula iremos começar um novo projeto iremos passar para o RPG estilo plataforma até lá.

tutorial feito por RedDragon


Última edição por reddragon em Seg 09 Fev 2009, 01:35, editado 2 vez(es)

reddragon

Número de Mensagens : 267
Idade : 27
Data de inscrição : 19/03/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Qualidade Re: Aula 6 - Vamos explodir coisas.

Mensagem por Igor KinGamer em Dom 08 Fev 2009, 22:06

Só tem um problema, no endaction do path os números são 0, 1, 2 e 3, não 1, 2, 3 e 4.

Igor KinGamer

Número de Mensagens : 890
Idade : 21
Data de inscrição : 26/09/2008
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Qualidade Re: Aula 6 - Vamos explodir coisas.

Mensagem por Dark-Yes em Sex 20 Fev 2009, 23:32

Outro Problema!

Essa parte dos Tutoriais é para Versão PRO e não LITE



=============-EDIT-==============


Vixi fiz tudo certo mais a TIME LINE não deu efeito nenhum na room
quer dizer deu sim...

ERROR

Dark-Yes

Número de Mensagens : 265
Data de inscrição : 27/12/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Qualidade Re: Aula 6 - Vamos explodir coisas.

Mensagem por Hitsugaya26 em Sab 07 Mar 2009, 00:13

isso é pra pro alguem me passa o link pra baxar?

Hitsugaya26

Número de Mensagens : 67
Data de inscrição : 01/03/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Qualidade Re: Aula 6 - Vamos explodir coisas.

Mensagem por Natch em Ter 14 Jul 2009, 22:21

optima aulas, mas estou com um probleminha com o Time line
eu meti no create do obj_criador_inimigo o timeline1, e no timeline1 tem o seguite codigo
Código:
instance_create(obj_inimigo1,x,y);
mas dame esse erro, acho que ele esta a crir outro objecto que eu eliminei
Código:
___________________________________________
ERROR in
action number 1
at time step 0
of time line timeline1:

Creating instance for non-existing object: 96

esta aqui a engine se alguem quiser analisar o porque do erro.

Natch

Número de Mensagens : 501
Idade : 27
Data de inscrição : 05/06/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://studionatch.com.sapo.pt/

Voltar ao Topo Ir em baixo

Qualidade Re: Aula 6 - Vamos explodir coisas.

Mensagem por SasQuash em Dom 26 Jul 2009, 14:44

POR FAVOR ALGUEM ME PASSE O PRO! aquele comando da bala acertar o obj_inimigo1..nau deu da um ERRO que diz que esse comando e para a versao PRO No

SasQuash

Número de Mensagens : 9
Idade : 21
Data de inscrição : 26/07/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Qualidade Re: Aula 6 - Vamos explodir coisas.

Mensagem por tata139 em Dom 26 Jul 2009, 15:00

Natch escreveu:optima aulas, mas estou com um probleminha com o Time line
eu meti no create do obj_criador_inimigo o timeline1, e no timeline1 tem o seguite codigo
Código:
instance_create(obj_inimigo1,x,y);
mas dame esse erro, acho que ele esta a crir outro objecto que eu eliminei
Código:
___________________________________________
ERROR in
action number 1
at time step 0
of time line timeline1:

Creating instance for non-existing object: 96

esta aqui a engine se alguem quiser analisar o porque do erro.
mude de (obj_inimigo1,x,y) pra (x,y,obj_inimigo1)

tata139

Número de Mensagens : 1121
Data de inscrição : 11/08/2008
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Qualidade Re: Aula 6 - Vamos explodir coisas.

Mensagem por SasQuash em Dom 26 Jul 2009, 15:04

esse é o erre que da na versão que da na versão LITE [code]ERROR in
action number 1
of Collision Event with object obj_bala
for object obj_inimigo1:

Error in code at line 2:
effect_create_above(ef_explosion,x,y,0,c_red)

at position 2: This function is only available in the Pro Edition.

SasQuash

Número de Mensagens : 9
Idade : 21
Data de inscrição : 26/07/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Qualidade Re: Aula 6 - Vamos explodir coisas.

Mensagem por Zerei em Qua 05 Ago 2009, 13:51

cara muito bom o tuto da pra entender certim
mas teme uma coisa
vc n explico direito onde q eu olho a lista de efeito
dai n da pra testar o jogo pq o efeito colisao e o efeito de direction é so pra pro
explica isso aew
vlw

Zerei

Número de Mensagens : 10
Data de inscrição : 04/08/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Qualidade Re: Aula 6 - Vamos explodir coisas.

Mensagem por fore em Ter 06 Out 2009, 18:29

por favor,se não for pedir muito,não teria como vc definir melhor aquela parte do comando with ???
embolou um pokinhu minha kbça
cada hora que leio entendo de uma maneira
ajudem ai pleaseeee!!!!!!! Question

fore

Número de Mensagens : 14
Idade : 26
Data de inscrição : 01/10/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Qualidade Re: Aula 6 - Vamos explodir coisas.

Mensagem por Thyago em Ter 06 Out 2009, 19:20

O tópico é antigo,mas se você quer saber sobre with.
with significa quem?
ou seja
with(obj2) significa que quem vai praticar a açâo é o objeto 2,idependentemente de quem estiver executando e script.
por exemplo voce coloca um escript no objeto1.
speed=100. Então o speed do objeto1 sera um a 100 mas se você colocar.
with(objeto2)speed=100
.Aí o speed do objeto2 que será igual a 100.

Minha engine de plataformahttp://www.mandamais.com.br/download/fgc951020095100

Thyago

Ranking : Nota B
Número de Mensagens : 1092
Idade : 30
Data de inscrição : 24/08/2009
Notas recebidas : D+B+B+C+A
Reputação : 31
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 1
   :

Voltar ao Topo Ir em baixo

Qualidade Re: Aula 6 - Vamos explodir coisas.

Mensagem por Adriel em Sab 17 Out 2009, 16:30

Pôxa vida, cara... precisa de tanta coisa assim para explodir uma coisinha à toa???? Eu explodo coisas com 2 sprites, 2 objetos e, em um deles, eu só preciso de um Event e 2 ações.

Adriel

Número de Mensagens : 922
Idade : 18
Data de inscrição : 18/07/2009
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Qualidade Re: Aula 6 - Vamos explodir coisas.

Mensagem por vitinhow013 em Dom 17 Jan 2010, 12:01

Tá dando 2 erro aqui por causa que eu num tenhu a versão pro
Alguém me manda por favor a versão Pro Edition !!
plz !!!
pelo bem da humanidade e do nosso aprendizado de GM Sad Sad Sad

vitinhow013

Número de Mensagens : 2
Idade : 20
Data de inscrição : 16/01/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Qualidade Re: Aula 6 - Vamos explodir coisas.

Mensagem por diegorodriguesc em Sab 14 Ago 2010, 15:37

Simplismente tutorial perfeito, só seria bom se você explicasse a ter inimigos continuos... e a atirar em quanto estiver andando tambem.


Abraços

diegorodriguesc

Número de Mensagens : 42
Idade : 22
Data de inscrição : 12/08/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.joelhodemendigo.blogspot.com

Voltar ao Topo Ir em baixo

Qualidade Re: Aula 6 - Vamos explodir coisas.

Mensagem por Assassino em Seg 30 Ago 2010, 21:05

O tuto está ótimo, até acho que vc utilizou comandos mais difíceis que embolou de um certo modo a kbeça da galera Rolling Eyes, mas tirando isso, foi um ótimo tuto Happy

Assassino

Número de Mensagens : 390
Idade : 20
Data de inscrição : 13/08/2010
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://rockstarfamilies.blogspot.com/

Voltar ao Topo Ir em baixo

Qualidade Re: Aula 6 - Vamos explodir coisas.

Mensagem por pedr0-de em Seg 04 Out 2010, 15:33

fiz o tal de path
certinho e coloquei o
inimigo na room
só que quando testei
só apareceu o meu avião
e o inimigo ñ
já conferir tdo
e num tem nada de errado
tu pode me ajudar Question

pedr0-de

Número de Mensagens : 1
Data de inscrição : 06/09/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Qualidade Re: Aula 6 - Vamos explodir coisas.

Mensagem por patofu30 em Sab 09 Jul 2011, 21:19

cara para que serve essa time line ??? eu fiz tudo e n notei diferença com ela e sem ela ... oq exatamente ela modifica e oq ela modificou nesse tutorial ??

patofu30

Número de Mensagens : 25
Data de inscrição : 05/07/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Qualidade Re: Aula 6 - Vamos explodir coisas.

Mensagem por PedroX em Dom 10 Jul 2011, 00:27

Se quiser saber para que serve:
http://gmbr.forumeiros.com/t16925-time-line-como-usar

No caso do tutorial, parece que a timeline cria os inimigos.
Olhe na parte do tutorial que diz:
Agora vamos um novo obj e nomeio de obj_criador_inimigo e crie um evento create e nele coloque a lib Set Time Line
Isso quer dizer que esse objeto vai criar inimigos.

Até mais!

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Qualidade Re: Aula 6 - Vamos explodir coisas.

Mensagem por thelack em Qua 11 Jan 2012, 19:57

quando testo o jogo da esse erro:

ERROR in
action number 1
of Collision Event with object obj_bala
for object obj_inimigo1:

Error in code at line 2:
effect_create_above(ef_explosion,x,y,0,c_red)
^
at position 2: This function is not available in the Lite Edition.

o que faço

thelack

Número de Mensagens : 6
Data de inscrição : 11/01/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Qualidade Re: Aula 6 - Vamos explodir coisas.

Mensagem por CRP-Max em Qua 11 Jan 2012, 20:00

thelack escreveu:This function is not available in the Lite Edition.
Esta função não é valida na versão lite(grátis) do Game Maker.
Somente com o Game Maker Pro você pode usar esta função, ou seja só comprando o aplicativo.

CRP-Max

Ranking : Nota C
Número de Mensagens : 819
Idade : 41
Data de inscrição : 28/10/2008
Notas recebidas : C
Reputação : 29
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Qualidade Re: Aula 6 - Vamos explodir coisas.

Mensagem por Black Studio em Qua 11 Jan 2012, 20:02

THELACK
quando testo o jogo da esse erro:

ERROR in
action number 1
of Collision Event with object obj_bala
for object obj_inimigo1:

Error in code at line 2:
effect_create_above(ef_explosion,x,y,0,c_red)
^
at position 2: This function is not available in the Lite Edition.

o que faço

Compre o Game Maker.

Leia o Erro : This function is not available in the Lite Edition.
Portugues : Esta função não é permetida na versão Lite.


Black Studio

Ranking : Nota C
Número de Mensagens : 337
Idade : 18
Data de inscrição : 19/10/2011
Notas recebidas : C + C
Reputação : 9
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 0

Voltar ao Topo Ir em baixo

Qualidade Re: Aula 6 - Vamos explodir coisas.

Mensagem por thelack em Qua 11 Jan 2012, 20:12

mas tu sabe se tem como fazze isso na versão lite mas com outro script ou conhece um bom tutorial como esse pra versão lite


Última edição por thelack em Qua 11 Jan 2012, 20:19, editado 1 vez(es)

thelack

Número de Mensagens : 6
Data de inscrição : 11/01/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Qualidade Re: Aula 6 - Vamos explodir coisas.

Mensagem por thelack em Qua 11 Jan 2012, 20:16

Ou conhece um bom tutorial para versão lite

thelack

Número de Mensagens : 6
Data de inscrição : 11/01/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Qualidade Re: Aula 6 - Vamos explodir coisas.

Mensagem por Gabrieltricks em Sex 19 Jul 2013, 18:54

Tem um pequeno problema, quando adiciona o obj_criador_inimigo no centro da room aparece isso:

ERROR in
action number 1
at time step 0
of time line Criar_Inimigo:

Creating instance for non-existing object: 192

E quando é adicionado mais de um obj_criador_inimigo aparece novamente o mesmo erro. Por gentileza alguém pode me ajudar?

Gabrieltricks

Número de Mensagens : 5
Idade : 21
Data de inscrição : 05/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.youtube.com/gabrieltricks

Voltar ao Topo Ir em baixo

Qualidade Re: Aula 6 - Vamos explodir coisas.

Mensagem por macedoboka em Dom 02 Mar 2014, 19:43

Então quer dizer que minha nave so vai se movimentar se eu estiver uma versão pro , ou so muda o jeito que se faz o movimento?

macedoboka

Número de Mensagens : 63
Idade : 26
Data de inscrição : 02/03/2014
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Qualidade Re: Aula 6 - Vamos explodir coisas.

Mensagem por Conteúdo patrocinado Hoje à(s) 08:31


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum