Conectar-se
Quem está conectado
31 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 31 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 15/09/2012
Número de Mensagens : 8
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

[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?


Última edição por keyser_br em Sex 21 Set 2012, 21:01, editado 1 vez(es)
avatar
Ranking : Nota A
Notas recebidas : A-C-B-A
Data de inscrição : 05/10/2010
Número de Mensagens : 383
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 57

Prêmios
   : 0
   : 1
   : 2
Ver perfil do usuário

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
}
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/
avatar
Data de inscrição : 15/09/2012
Número de Mensagens : 8
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

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
avatar
Ranking : Nota A
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 :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 71

Prêmios
   : 1
   : 2
   : 1
Ver perfil do usuário

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.
avatar
Data de inscrição : 15/09/2012
Número de Mensagens : 8
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

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

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.
avatar
Ranking : Nota A
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 :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 71

Prêmios
   : 1
   : 2
   : 1
Ver perfil do usuário

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.
avatar
Data de inscrição : 15/09/2012
Número de Mensagens : 8
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

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
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum