Duvida com tempo entre açoes

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

Duvida com tempo entre açoes

Mensagem por Isquilo_Roedor em Dom 16 Mar 2014, 15:09

então é o seguinte aqui esta a colisao do meu inimigo com o player
é tipo super mario pular em cima e esmagar,mas o problema é o seguinte,quando eu pulo o objeto inimigo se destroy e nem mostra a sprite dele esmagado,eu queria saber se tem como fazer um tempo mostrando a sprite dele esmagada até ele sumir,se da pra fazer sem usar o alarm e se só der com alarm eu gostaria de uma explicação e um exemplo

if (global.matar = true) {     < essa aqui e a variavel pra matar
sprite_index = spr_jogador_esmagado  < essa aqui e a sprite dele esmagado
instance_destroy();  < aqui a exclusao dele 
global.pontos+=10;   } else {                            < e aqui se caso encostar nele de frente
show_message ("Morreu");
room_restart();
}

Isquilo_Roedor

Ranking : Nota D
Número de Mensagens : 334
Idade : 17
Data de inscrição : 22/03/2012
Notas recebidas : E-E-D
Reputação : 18
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Duvida com tempo entre açoes

Mensagem por bootzin em Seg 17 Mar 2014, 15:52

Cara, vc pode tentar o seguinte:
Tira o código 
Código:
sprite_index = spr_jogador_esmagado
instance_destroy()
do seu evento, cria um novo evento other > animation end e coloca:
Código:
if sprite_index = spr_jogador_esmagado
instance_destroy()
Não testei, mas acho que funciona
E cara, da próxima vez usa o "code" pra mostrar seu código, a organização do tópico contribui mito pra terem ou não pessoas que ajudam vc

bootzin

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

Voltar ao Topo Ir em baixo

Re: Duvida com tempo entre açoes

Mensagem por Mr. Kaleb em Seg 17 Mar 2014, 16:06

Vai dar na mesma, bootzin, porque ele precisa de um tempo para mostrar a sprite. Você pode fazer de 2 jeitos.

1 - O jeito fácil é você ir na sprite do inimigo esmagado e repetir a sub-imagem 60 vezes, que no caso vai mostrar ele esmagado por 2 segundos, acho que é um tempo bom. Mas vai pegar um pouco de memória, não tanta.

2 - Ou então você pode criar um alarm. Crie um Alarm 0 e ponha isso lá:

Código:
instance_destroy();

Depois substitua seu código por esse:

Código:
if (global.matar=true) 
{
     sprite_index=spr_jogador_esmagado;
     global.pontos+=10
     alarm[0]=30; //Esse é o tempo, no caso 1 segundo (30 steps = 1 seg)

else {
     show_message("Morreu");
     room_restart();

Mr. Kaleb

Ranking : Nota C
Número de Mensagens : 1400
Idade : 19
Data de inscrição : 07/09/2010
Notas recebidas : C
Reputação : 21
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Duvida com tempo entre açoes

Mensagem por bootzin em Seg 17 Mar 2014, 23:57

Ah sim, agora que eu entendi que não é uma animação dele morrendo mas sim uma sprite dele morto.. 
O jeito mais fácil é usar alarm mesmo.. Se vc quer uma explicação beeeeem básica e simplória, alarm é uma """Variável""" que reduz o seu valor em 1 a cada step. Step é a unidade de medida de tempo básica do game maker, que equivale a 1/30 segundo. Por isso se vc definir o alarm[0] = 60, ele vai levar dois segundos para atingir o valor 0, e quando isso acontecer ele vai executar as ações que estejam no evento alarm 0.
Acho que é isso aí, se vc tiver mais dúvidas, dá uma olhada nos tutoriais do fórum, eles explicam e ajudam em muita coisa!
Abraço

bootzin

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

Voltar ao Topo Ir em baixo

Re: Duvida com tempo entre açoes

Mensagem por Conteúdo patrocinado Hoje à(s) 00:28


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