Animation_end funciona?

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

Animation_end funciona?

Mensagem por Tenorio em Ter 14 Jun 2011, 13:23

Pessoal, estou com uma dúvida no meu game de luta:

Existe um objeto de controle que não possui sprite_index;
No evento Draw desse objeto, faço os seguintes comandos:

draw_sprite (r1,-1, (20,130);
draw_sprite (r2,-1, (75,130);
draw_sprite (r3,-1, (200,130);

Os sprites r1, r2 e r3 são gifs animados;
r1 tem 25 quadros; r2 tem 17 quadros e r3 recebe um gif externo e não tem como precisar a quantidade de quadros inicialmente. Não dá para separar esses sprites em objetos distintos, pois a programação está avançada e muitos objetos dependem deste.

Eu gostaria que quando r1 acabasse acontecesse alguns comandos. Quando r2 acabasse acontecesse outros comandos e quando r3 acabasse acontecesse novos comandos.

Pensei em algo do tipo, no "step":

if animation_end (r1) {
alguns comandos;
}

if animation_end (r2) {
outros comandos;
}

if animation_end (r3) {
novos comandos;
}

Obviamente isso não funcionou. Alguém tem alguma solução?

Tenorio

Número de Mensagens : 1
Data de inscrição : 14/06/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Animation_end funciona?

Mensagem por MatheusReis em Ter 14 Jun 2011, 13:29

Quando se põe "-1" no campo de "image_index" do draw, o GameMaker usará o valor da image_index do objeto.
Então primeiramente tente criar 3 objetos diferentes ou entao 3 variáveis para gravar as image_index.

Quando preciso checar se a animação acabou em código eu uso:
Código:
if floor(image_index)=sprite_get_number(sprite_index)-1
floor() retorna o valor arredondado para baixo.
Assim, se o valor de image_index estiver quebrado (talvez por se usar image_speed fracionária), ele será corrigido.
sprite_get_number(sprite) retorna o numero de quadros da sprite indicada.
O número do ultimo frame de uma sprite é sempre o numero de quadros menos 1.
Assim, "sprite_get_number(sprite)-1" é o valor do ultimo frame.
Agora basta adaptar isso ao seu sistema.

MatheusReis

Ranking : Nota A
Número de Mensagens : 1087
Idade : 23
Data de inscrição : 13/01/2010
Notas recebidas : B-A-A
Reputação : 30
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 0

http://www.mathaeuz.deviantart.com

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum