[RESOLVIDO] - Animação imcompleta e morte

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

Resolvido [RESOLVIDO] - Animação imcompleta e morte

Mensagem por keyser_br em Sex 21 Set 2012, 13:52

Olá, estou com uma dúvida que está me matando aqui
é o seguinte, tenho umas sprites (nave_andando, e nave_morrendo)
nave_andando tem 2 frames;
nave_morrendo tem 10 frames;

o que eu estou fazendo

if (playerHealth = 0){
image_speed = 0.2; //velocidade da animação
sprite_index = nave_morrendo; //muda a sprite para nave_morrendo
hspeed = 0; //inpede de mover quando a animação estiver ocorrendo
vspeed = 0; //inpede de mover quando a animação estiver ocorrendo
x = x; //inpede de mover quando a animação estiver ocorrendo
y = y //inpede de mover quando a animação estiver ocorrendo
}

Problema...
...
primeiro - por mais que eu mude a sprite, ela só me retorna os 2 primeiros frames da imagem "nave_morrendo" (já tentei até image_number = -1), mas num rola
segundo - a imagem fica dando loop e mesmo que eu adicione um animation end num rola (solução é que se eu encontrar a solução acima posso adicionar frames em branco até o fim da animação)
terceiro - não consigo fazer esperar a animação (mesmo que seja 2 frames) para depois dar um room_restart;

alguem pode me ajudar?


Última edição por keyser_br em Sex 21 Set 2012, 21:01, editado 1 vez(es)

keyser_br

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

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] - Animação imcompleta e morte

Mensagem por Mr.Rafael em Sex 21 Set 2012, 14:33

Código:
if (playerHealth = 0){
image_speed = 0; //velocidade da animação (parada, para evitar que o novo sprite pegue carona na velocidade do outro) <-
sprite_index = nave_morrendo; //muda a sprite para nave_morrendo
image_index = 0; // Tente impor que a animação ocorra desde o início                    <-
image_speed = 0.2; // Isso fará com que a animação comece                                <-
hspeed = 0; //inpede de mover quando a animação estiver ocorrendo
vspeed = 0; //inpede de mover quando a animação estiver ocorrendo
x = x; //inpede de mover quando a animação estiver ocorrendo
y = y //inpede de mover quando a animação estiver ocorrendo
}
Me parece que o Animation End só funciona com o sprite original do objeto (não sei, nunca fiz isso, não tenho certeza), então você pode tentar no step algo tipo:
Código:
if image_speed = ultimo subimage{instance_destroy();}
Tenta aí.

o/

Mr.Rafael

Ranking : Nota A
Número de Mensagens : 383
Data de inscrição : 05/10/2010
Notas recebidas : A-C-B-A
Reputação : 57
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 2

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] - Animação imcompleta e morte

Mensagem por keyser_br em Sex 21 Set 2012, 14:40

image_speed ou index? ... '-', vc me confundiu agora


/*edit */
e nem rolou cara, agora fica parado no primeiro frame.. :/

não sei pq mas acho que ele limita o numero de frames de qualquer sprite que substitua a original com o limite da original, acho que é assim que funciona

keyser_br

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

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] - Animação imcompleta e morte

Mensagem por cascavelo em Sex 21 Set 2012, 17:36

O problema é a variável Playerhealth, como ela continua sendo zero, o programa fica Reiniciando a animação continuamente, coloque playerhealth=-1, dentro do if que animação vai chegar ao final. Aí você pode reiniciar a room no animation_end.

cascavelo

Ranking : Nota A
Número de Mensagens : 1011
Idade : 46
Data de inscrição : 08/12/2011
Notas recebidas : A - A - A - A - A -A -C
Reputação : 71
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 2
   : 1

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] - Animação imcompleta e morte

Mensagem por keyser_br em Sex 21 Set 2012, 19:47

Nem foi esse o problema...
resolvi o problema da seguinte forma.

o obj_player no step coloquei assim

Código:
if (global.playerhealth = 0){ //defini qual o sangue para 0
    instance_create(x,y, obj_player_dead) ; //criei a nova instancia jogador morrendo     
    hspeed = 0; //inpede que a animação ande durante o efeito com eventos do teclado
    vspeed = 0; //inpede que a animação ande durante o efeito com eventos do teclado
    x = x; //inpede que a animação ande durante o efeito
    y = y; //inpede que a animação ande durante o efeito
    instance_destroy(); //destoi TODA a instancia   
   
}

criei um novo obj com a quantidade de frames que gostaria, o obj_player_dead

animation end

Código:
room_restart(); //dá restart na room
global.playerhealth = 100; //passei o playerhealth para um evento global
global.playerlives  -=1; //defini que toda vez que a room é resetada por esse evento de morte, o global.playerlives diminui +1
if(global.playerlives < 0){ //se chegar a zero
    global.playerlives = 0; //continua em zero impedindo o -1
    transition_kind=21; //transição de fade
    transition_steps = 120; //tempo da transição
    room_goto(rm_game_over); //vai para a tela de game over
}
instance_desstancia

pra quem tiver o mesmo problema que eu ai está a solução, só não esquecer de criar um config_geral persistent com as variaveis globais...
quando eu terminar essa engine que estou fazendo vou postar um tutorial aqui.

keyser_br

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

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] - Animação imcompleta e morte

Mensagem por cascavelo em Sex 21 Set 2012, 21:24

O evento animation end existe pra que não seja preciso fazer justamente o que você fez na sua solução, com certeza o problema era apenas a variável.

cascavelo

Ranking : Nota A
Número de Mensagens : 1011
Idade : 46
Data de inscrição : 08/12/2011
Notas recebidas : A - A - A - A - A -A -C
Reputação : 71
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 2
   : 1

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] - Animação imcompleta e morte

Mensagem por keyser_br em Sab 22 Set 2012, 12:59

não véio vc não não entendeu, já que no construct (no game maker é create) eu defino a variavel payerhealth = 100, assim mesmo ela volta a 100 normalmente, e eu conseguia jogar diminuindo uma vida, o sistema estava perfeito, só que tive que adaptar para aimation end, por que ainda tinha o transition para o game over e o game maker trabalha com nuemro de frame igual ao frame da original...
maio confuso, mas tem um porquê...

quando instaciamos um objeto com uma sprite o create do sprite fica

numero de imagens = 3
endereço da imagem = ../imagem1.png;
endereço da imagem = ../imagem2.png;
endereço da imagem = ../imagem2.png;

quando trocamos a imagem ele muda a sprite.. mas não soma o numero de frames, tente... faça uma sprite com o player parado com 3 frames... e chame um evento morte com um sprite_index com outro com mais de 10 frames

keyser_br

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

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] - Animação imcompleta e morte

Mensagem por Conteúdo patrocinado Hoje à(s) 16: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