[RESOLVIDO] - Animação imcompleta e morte
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?
é 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?
- Ranking :
Notas recebidas : A-C-B-A
Data de inscrição : 05/10/2010
Número de Mensagens : 383
Insígnias de JAM :x 0
x 0
x 0
Reputação : 57
Prêmios: 0
: 1
: 2
Re: [RESOLVIDO] - Animação imcompleta e morte
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
}
- Código:
if image_speed = ultimo subimage{instance_destroy();}
o/
Re: [RESOLVIDO] - Animação imcompleta e morte
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
/*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
- Ranking :
Notas recebidas : A - A - A - A - A -A -C
Data de inscrição : 08/12/2011
Número de Mensagens : 1011
Insígnias de JAM :x 0
x 0
x 0
Reputação : 71
Prêmios: 1
: 2
: 1
Re: [RESOLVIDO] - Animação imcompleta e morte
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.
Re: [RESOLVIDO] - Animação imcompleta e morte
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
criei um novo obj com a quantidade de frames que gostaria, o obj_player_dead
animation end
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.
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.
- Ranking :
Notas recebidas : A - A - A - A - A -A -C
Data de inscrição : 08/12/2011
Número de Mensagens : 1011
Insígnias de JAM :x 0
x 0
x 0
Reputação : 71
Prêmios: 1
: 2
: 1
Re: [RESOLVIDO] - Animação imcompleta e morte
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.
Re: [RESOLVIDO] - Animação imcompleta e morte
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
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
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum