Como faço para que quando a imagem de um sprite chegar no final, ela para no último quadro?

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

Como faço para que quando a imagem de um sprite chegar no final, ela para no último quadro?

Mensagem por fonetico em Seg 09 Nov 2009, 17:22

Ajudem-me por favor.

fonetico

Número de Mensagens : 1830
Idade : 21
Data de inscrição : 05/10/2009
Reputação : 7
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Como faço para que quando a imagem de um sprite chegar no final, ela para no último quadro?

Mensagem por dungeon333 em Seg 09 Nov 2009, 17:24

if round(image_index) == image_number
{
image_index = image_number
}

dungeon333

Número de Mensagens : 351
Data de inscrição : 29/05/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Como faço para que quando a imagem de um sprite chegar no final, ela para no último quadro?

Mensagem por Janx em Seg 09 Nov 2009, 18:30

Bom, isso pode até funcionar, mas recomendo você adicionar o seguinte codigo:

Código:
if round(image_index) == image_number
{
image_index = image_number;
image_speed = 0;
}

image_speed = 0 vai fazer parar de avançar as imagens como se tivesse pausado a animação.
Para a animação funcionar dinovo basta setar a velocidade assim:
Código:
image_speed = 0.2; //ou outro valor

flwss

Janx

Número de Mensagens : 2417
Idade : 23
Data de inscrição : 24/05/2008
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 0

Voltar ao Topo Ir em baixo

Re: Como faço para que quando a imagem de um sprite chegar no final, ela para no último quadro?

Mensagem por TiagoBonadio em Seg 09 Nov 2009, 19:29

sei que a duvida não é minha mais poderia explicar o image_number?

TiagoBonadio

Número de Mensagens : 199
Idade : 20
Data de inscrição : 05/10/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://animanga-games.forumeiros.com/

Voltar ao Topo Ir em baixo

Re: Como faço para que quando a imagem de um sprite chegar no final, ela para no último quadro?

Mensagem por Kabeção em Seg 09 Nov 2009, 21:47

É uma variável com o numero de imagens que o sprite do objeto tem e o esse numero é sempre o valor do ultimo frame.
Por isso ele o usou no exemplo.

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: Como faço para que quando a imagem de um sprite chegar no final, ela para no último quadro?

Mensagem por fonetico em Seg 09 Nov 2009, 22:39

Obrigado pessoal!

fonetico

Número de Mensagens : 1830
Idade : 21
Data de inscrição : 05/10/2009
Reputação : 7
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Como faço para que quando a imagem de um sprite chegar no final, ela para no último quadro?

Mensagem por Convidad em Qua 11 Nov 2009, 21:46

Lá na janela de propriedades dos objetos, há um evento chamado "Animation End". Esse evento é o que usamos para controlar animações dentro do Game Maker. É o modo mais rápido e fácil.

Coloque essa linha de código neste evento:

Código:
image_index := (image_number - 1);
image_speed := 0;

Toda vez que uma animação chegar ao final, ela vai parar no último quadro. Você poderia colocar uma condição de qual sprite isso deveria acontecer... o que resultaria no controle propriamente dito.

Você também poderia usar:

Código:
image_index := (image_number - 1);
image_single := image_index;

Lembrando que a variável image_single não é documentada no help, então:

1 - Toda vez que o valor de image_single for maior que (-1), a instância usará somente o quandro informado por esta variável.

2 - Toda vez que image_single for igual à (-1), a instância passará a usar todos os quadros disponíveis do sprite.

Boa sorte!
Capitão Commando.


Última edição por Capitão Commando em Qui 12 Nov 2009, 22:39, editado 2 vez(es)

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Como faço para que quando a imagem de um sprite chegar no final, ela para no último quadro?

Mensagem por Kabeção em Qua 11 Nov 2009, 21:54

Só lembrando uma coisa importante...
image_number retorna o número de imagem contando a partir do 1, já no image_index o primeiro frame é o 0 então para isso realmente funcionar devia ficar assim:
Código:
image_index = image_number-1;

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: Como faço para que quando a imagem de um sprite chegar no final, ela para no último quadro?

Mensagem por AlexandreCR em Qua 11 Nov 2009, 22:19

Usei esses codigos que postaram ai bem legal,tomara que tenha ti ajudado tambem

AlexandreCR

Número de Mensagens : 88
Idade : 25
Data de inscrição : 07/11/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Como faço para que quando a imagem de um sprite chegar no final, ela para no último quadro?

Mensagem por Convidad em Qua 11 Nov 2009, 23:23

Kabeção escreveu:Só lembrando uma coisa importante...
image_number retorna o número de imagem contando a partir do 1, já no image_index o primeiro frame é o 0 então para isso realmente funcionar devia ficar assim:
Código:
image_index = image_number-1;

Boa observação Kabeção! Eu corrigí lá, valeu pelo toque. [Z¬)]

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Como faço para que quando a imagem de um sprite chegar no final, ela para no último quadro?

Mensagem por bootzin em Qui 28 Jan 2010, 23:20

Valeu!
Esse tópico me ajudo muito pois meu carinha não parava de reproduzir as subimagens e agora deu certo
Valeu mesmo! What a Face

bootzin

Número de Mensagens : 136
Idade : 21
Data de inscrição : 28/01/2010
Reputação : 5
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Como faço para que quando a imagem de um sprite chegar no final, ela para no último quadro?

Mensagem por fonetico em Qui 28 Jan 2010, 23:54

Nem tinha lembrado mais desse tópico, valeu galera, agora sei tudo sobre o assunto!

Bye

fonetico

Número de Mensagens : 1830
Idade : 21
Data de inscrição : 05/10/2009
Reputação : 7
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Como faço para que quando a imagem de um sprite chegar no final, ela para no último quadro?

Mensagem por mancha em Qua 17 Fev 2010, 11:43

Pessoal, desculpe perguntar, mas da pra dar um exemplo claro usando esse comando, pq tb estou com o mesmo problema e nao consigo fazer o sprite parar.
Ja vo postar como esta o meu problema pq se alguem souber ja me ajuda ok,
primeiro tem o meu inimigo q tem os sprites de movimentos e tal funcionando certinho, mas quando ele morre, tem um sprite de animaçao da morte com 3 imagens, eu quero q quando ele morrer pare na ultima imagem desse sprite com o inimigo morto no chao, mas quero q mostre as 3 imagens em sequencia pq com esse codigo ai de cima só mostra o inimigo vivo e quando morre ja mostra ele no chao, nao tem a animação dele caindo e quase no chao e depois no chao, ja aparece direto no chao.
E aproveitando o momento gostaria de saber como colocar um atraso em uma determinada sprite por um tempo maior do que outra tem como fazer isso?
Grato aguardo resposta

mancha

Número de Mensagens : 9
Idade : 35
Data de inscrição : 04/02/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Como faço para que quando a imagem de um sprite chegar no final, ela para no último quadro?

Mensagem por Fabião em Qua 17 Fev 2010, 17:15

mancha escreveu:Pessoal, desculpe perguntar, mas da pra dar um exemplo claro usando esse comando, pq tb estou com o mesmo problema e nao consigo fazer o sprite parar.
Ja vo postar como esta o meu problema pq se alguem souber ja me ajuda ok,
primeiro tem o meu inimigo q tem os sprites de movimentos e tal funcionando certinho, mas quando ele morre, tem um sprite de animaçao da morte com 3 imagens, eu quero q quando ele morrer pare na ultima imagem desse sprite com o inimigo morto no chao, mas quero q mostre as 3 imagens em sequencia pq com esse codigo ai de cima só mostra o inimigo vivo e quando morre ja mostra ele no chao, nao tem a animação dele caindo e quase no chao e depois no chao, ja aparece direto no chao.
E aproveitando o momento gostaria de saber como colocar um atraso em uma determinada sprite por um tempo maior do que outra tem como fazer isso?
Grato aguardo resposta

Bom isso é muito simples

no evento create coloque o velocidade da animação
por exemplo: image_speed = 0.3
no objeto inimigo add o evento animation end
coloque em code:

image_index = 2 // o valor 2 corresponde a 3º imagem do seu inimigo
image_speed = 0

espero que isso resolva...


Última edição por Fabião em Qua 17 Fev 2010, 19:56, editado 1 vez(es)

Fabião

Ranking : Nota B
Número de Mensagens : 247
Idade : 29
Data de inscrição : 06/07/2008
Notas recebidas : B
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Como faço para que quando a imagem de um sprite chegar no final, ela para no último quadro?

Mensagem por mancha em Qua 17 Fev 2010, 18:14

ok, valeu amigo, ajudou sim!!!

mancha

Número de Mensagens : 9
Idade : 35
Data de inscrição : 04/02/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Como faço para que quando a imagem de um sprite chegar no final, ela para no último quadro?

Mensagem por Conteúdo patrocinado Hoje à(s) 02:30


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