Obrigado por visitar a The Game Makers Brasil 😁 Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais.

Parar animação de um sprite / congelar animação no ultimo frame

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
arthuzinho0705
Novato
Novato
Reações: 0
Mensagens: 6

Parar animação de um sprite / congelar animação no ultimo frame

Mensagem por arthuzinho0705 » Ter Mai 26, 2020 12:06 am

Sou iniciante e estou tentando fazer com que meu personagem, quando pule ou caia, que congele a imagem no ultimo frame:

no meu caso:

animação CAINDO tem 25 frames
quero que quando o ultimo frame for reproduzido que ele congele até cair no chão.
a minha animação está dando loop, nao quero isso, quero que ela congele a ultima imagem,

preciso de um tutorial completo, pois talvez eu esteja fazendo algo errado la do começo

Avatar do usuário
Chuaschinai
Colaborador
Colaborador
Reações: 6
Mensagens: 198

Re: Parar animação de um sprite / congelar animação no ultimo frame

Mensagem por Chuaschinai » Ter Mai 26, 2020 12:22 am

Pode ser mais simples do que pensa, faz assim pra ver se funciona:

Se e o numero da imagem atual for maior que os 25 frames, ele define que a imagem deve ser então o ultimo frame, você pode usar um numero direto ao invés do sprite_get_number().

Código: Selecionar todos

if(image_index >= sprite_get_number(sprite_index)-1){
  image_index = sprite_get_number(sprite_index)-1;
}
Dependendo da velocidade da sprite ele pode não funcionar, porque velocidades muito altas fazem frames pularem, dai terá que usar outra maneira.

Edit:
A melhor forma de usar e até mais prática do que a dita a cima, é usar o evento AnimationEnd, criando esse evento é só colocar dentro dele assim:

Código: Selecionar todos

if(sprite_index == sua_sprite){
   image_index = sprite_get_number(sua_sprite)-1;
}
Ele checa se a sprite atual chegou no final da animação, fazendo com que defina a ultima sprite.

Avatar do usuário
arthuzinho0705
Novato
Novato
Reações: 0
Mensagens: 6

Re: Parar animação de um sprite / congelar animação no ultimo frame

Mensagem por arthuzinho0705 » Ter Mai 26, 2020 12:44 am

tentei colocar esse codigo, mas não tive êxito.

preciso entender do 0, aonde colocar, se devo usar alguma variavel.

o meu codigo é pequeno estou começando ainda, se quiser posso mandar aqui.

inclusive, quando meu personagem pula ele faz a animação de subir, mas chega no ponto 0 ele parece q entra no sprite parado e assim que desce ele entra na sprite caindo.

mas vamos resolver primeiro o loop que me incomoda mais

Avatar do usuário
arthuzinho0705
Novato
Novato
Reações: 0
Mensagens: 6

Re: Parar animação de um sprite / congelar animação no ultimo frame

Mensagem por arthuzinho0705 » Ter Mai 26, 2020 12:51 am

segue meus codigos:
Create: Clique para ver o conteúdo
Step: Clique para ver o conteúdo
Animation End: Clique para ver o conteúdo

Avatar do usuário
Chuaschinai
Colaborador
Colaborador
Reações: 6
Mensagens: 198

Re: Parar animação de um sprite / congelar animação no ultimo frame

Mensagem por Chuaschinai » Ter Mai 26, 2020 9:40 am

Testei aqui seu código, e parece estar tudo certo, somente na animação que ele sobe ele fica em loop, então eu coloquei o mesmo código no AnimationEnd e funcionou tudo normal.

Aquele primeiro código que te passei, ele tinha que ser baseado na sprite_index talvez por isso não estivesse funcionando, porém o segundo com toda certeza funciona. Tente assim:

Basicamente retire o primeiro código que te mandei:

Código: Selecionar todos

if(image_index >= sprite_get_number(spr_stick_caindo)-1){
 image_index = sprite_get_number(spr_stick_caindo)-1;
}
E Coloque no AnimationEnd o mesmo código só que para quando estiver subindo:

Código: Selecionar todos

if(sprite_index == spr_stick_caindo){
 image_index = sprite_get_number(spr_stick_caindo)-1;
}
if(sprite_index == spr_stick_pulando){
 image_index = sprite_get_number(spr_stick_pulando)-1;
}
Ou seja quando ele estiver subindo ele realizará somente um loop, e quando estiver caindo também.

O AnimationEnd serve para coisas como esta, quando você especifica qual sprite_index é a atual, você pode fazer uma lógica baseada no seu ultimo frame.

Dessa forma que te passei, com certeza deve funcionar.

Avatar do usuário
arthuzinho0705
Novato
Novato
Reações: 0
Mensagens: 6

Re: Parar animação de um sprite / congelar animação no ultimo frame

Mensagem por arthuzinho0705 » Ter Mai 26, 2020 11:44 am

Opa, vou testar assim que eu puder, e te respondo aqui.

Avatar do usuário
arthuzinho0705
Novato
Novato
Reações: 0
Mensagens: 6

Re: Parar animação de um sprite / congelar animação no ultimo frame

Mensagem por arthuzinho0705 » Ter Mai 26, 2020 1:32 pm

Então, eu coloquei e não resolveu...

mas...

eu notei uma coisa que estava acontecendo e eu nao tinha visto...

a animação reinicia muito antes dos ultimos frames... ou seja, a animação não está indo até o fim... ela da o loop antes de terminar... talvez o erro esteja ai

EDIT:

Alterei a altura do pulo, na subida esta tudo ok, só na descida mesmo q ta bugando.

E acredito q o bug q ta dando qdo ele chega no pico do pulo seja o loop dando erro na descida

Avatar do usuário
Chuaschinai
Colaborador
Colaborador
Reações: 6
Mensagens: 198

Re: Parar animação de um sprite / congelar animação no ultimo frame

Mensagem por Chuaschinai » Ter Mai 26, 2020 2:46 pm

Você colocou no AnimationEnd quando ele esta caindo também?, porque eu testei aqui e tinha funcionado com o seu código, ele só rodava uma vez
e permanecia no ultimo frame sem problemas, tanto na animação de subida quanto na de descida.

Avatar do usuário
arthuzinho0705
Novato
Novato
Reações: 0
Mensagens: 6

Re: Parar animação de um sprite / congelar animação no ultimo frame

Mensagem por arthuzinho0705 » Ter Mai 26, 2020 7:49 pm

ANIMATION END

Código: Selecionar todos

if(sprite_index == spr_stick_caindo){
  image_index = sprite_get_number(spr_stick_caindo)-1;
}

if(sprite_index == spr_stick_pulando){
 image_index = sprite_get_number(spr_stick_pulando)-1;
}
Mano, to começando a suspeitar da minha animação, ou algo q nao configurei direito.

to fazendo upload das imagens no meu album aqui do forum, interessante ter isso num forum... kkkk nao sabia, assim nao preciso mandar aqui

Responder

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante