draw_sprite e animaçoes [DUVIDA]

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

draw_sprite e animaçoes [DUVIDA]

Mensagem por Lukbebalduke em Dom 02 Dez 2012, 20:55

Pessoal eu tenho um objeto que mudar de sprites varias vezes e todas animadas, e ainda preciso colocar uma barra de vida ! O problema é que se eu boto a barra de vida some a sprite, ai eu uso o draw_sprite e ele fica sem animaçao .O que fazer agora ?

Lukbebalduke

Ranking : Nota B
Número de Mensagens : 764
Data de inscrição : 06/07/2011
Notas recebidas : B - B - A - B
Reputação : 30
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 2

Voltar ao Topo Ir em baixo

Re: draw_sprite e animaçoes [DUVIDA]

Mensagem por Alex FC em Dom 02 Dez 2012, 21:00

Quando você colocar draw_sprite somente ele tem poucas opções a te oferecer, então tente isso caso o seu for GM8:

Código:
draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
Caso for GM 8.1 ou Studio:

Código:
draw_self()
Essas funções desenham a sprite do objeto com todas as suas características.

Espero ter ajudado.

FLWS!

Alex FC

Ranking : Nota A
Número de Mensagens : 2503
Idade : 23
Data de inscrição : 20/12/2008
Notas recebidas : B A
Reputação : 174
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://redscreensoft.blogspot.com

Voltar ao Topo Ir em baixo

Re: draw_sprite e animaçoes [DUVIDA]

Mensagem por Lukbebalduke em Dom 02 Dez 2012, 21:08

draw_sprite_ext

Tambem nao funciona, e eu uso o 8.0


Última edição por pinpi em Seg 03 Dez 2012, 09:48, editado 1 vez(es)

Lukbebalduke

Ranking : Nota B
Número de Mensagens : 764
Data de inscrição : 06/07/2011
Notas recebidas : B - B - A - B
Reputação : 30
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 2

Voltar ao Topo Ir em baixo

Re: draw_sprite e animaçoes [DUVIDA]

Mensagem por Alex FC em Dom 02 Dez 2012, 21:37

Uma pergunta:

Retirando o evento draw as animações voltam?

Se sim, coloque o meu código novamente, como ele está, sem modificar.

O que controla a animação é a variável image_index. Logo o problema pode ser este, essa variável estar em 0. Ou a variável image_speed estar em 0 também.

Você nos ajudaria muito se postasse o código que está a utilizar. Blz?

FLWS!

Alex FC

Ranking : Nota A
Número de Mensagens : 2503
Idade : 23
Data de inscrição : 20/12/2008
Notas recebidas : B A
Reputação : 174
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://redscreensoft.blogspot.com

Voltar ao Topo Ir em baixo

Re: draw_sprite e animaçoes [DUVIDA]

Mensagem por Lukbebalduke em Dom 02 Dez 2012, 21:44

Código:
if situacao = 1
    draw_sprite(spr_S1_P,image_index,x,y)
if situacao = 2
    draw_sprite(spr_S1_A,image_index,x,y)
if situacao = 3
    draw_sprite(spr_S1_AT,image_index,x,y)
if situacao = 4
    draw_sprite(spr_S1_M,image_index,x,y)
Ja tentei trocar o image_index por 0

Lukbebalduke

Ranking : Nota B
Número de Mensagens : 764
Data de inscrição : 06/07/2011
Notas recebidas : B - B - A - B
Reputação : 30
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 2

Voltar ao Topo Ir em baixo

Re: draw_sprite e animaçoes [DUVIDA]

Mensagem por Rodrigo Santiago em Dom 02 Dez 2012, 21:56

Lembre-se de colocar image_index, q e a variavel que indica a frame de animacao.
Draw_sprite_ext(sprite_index,image_index,x,y,image_xsclae,image_yscale,image_angle,image_blend,image_alpha)
eu acho q e assim, talvez eu me enrolei na sequencia(to com priguica de ligar o gm pra conferir), mas ve na ajudinha embaixo, na bara de status.
mas mesmo assim, use sprite index e deixe image speed>0

Rodrigo Santiago

Ranking : Nota B
Número de Mensagens : 1281
Idade : 20
Data de inscrição : 28/07/2012
Notas recebidas : C + C + B
Reputação : 73
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 1
   : 3

Voltar ao Topo Ir em baixo

Re: draw_sprite e animaçoes [DUVIDA]

Mensagem por Alex FC em Dom 02 Dez 2012, 22:00

Os códigos estão corretos.

Preste atenção, image_index é a subimagem atual da sprite. Então se você colocar 0 ela vai ficar parada na primeira subimagem.

image_speed é a velocidade de animação. Se ela for 0 também, a sprite não vai ficar animada.

Logo, procure nos seus códigos (principalmente no evento Step) se você atribui o valor 0 para alguma dessas variáveis.

Caso achar, veja se a expressão que deixa elas em 0 não ocorram sempre. Ex:

Código:
marca = 4

if marca == 4
{
  image_speed = 0
}
Nesse caso a velocidade da imagem sempre será 0, pois a expressão sempre será verdadeira (marca == 4).

FLWS!

Alex FC

Ranking : Nota A
Número de Mensagens : 2503
Idade : 23
Data de inscrição : 20/12/2008
Notas recebidas : B A
Reputação : 174
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://redscreensoft.blogspot.com

Voltar ao Topo Ir em baixo

Re: draw_sprite e animaçoes [DUVIDA]

Mensagem por Super Maker em Dom 02 Dez 2012, 23:50

Se você usa o Game Maker 8.1, simplesmente adicione esse metodo:
Código:
draw_self();

Super Maker

Número de Mensagens : 646
Idade : 33
Data de inscrição : 09/07/2011
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: draw_sprite e animaçoes [DUVIDA]

Mensagem por Lukbebalduke em Seg 03 Dez 2012, 09:48

Alex - Nao , ja tinha checado

Super Maker - 8.0

Lukbebalduke

Ranking : Nota B
Número de Mensagens : 764
Data de inscrição : 06/07/2011
Notas recebidas : B - B - A - B
Reputação : 30
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 2

Voltar ao Topo Ir em baixo

Re: draw_sprite e animaçoes [DUVIDA]

Mensagem por Alex FC em Seg 03 Dez 2012, 10:33

Cara essas são as únicas possibilidades na minha concepção.

Caso queira, me envie os códigos desse objeto por MP. Somente os códigos de cada evento. Não precisa mandar as sprites.

Com esses dados, com certeza resolvo.

FLWS!

Alex FC

Ranking : Nota A
Número de Mensagens : 2503
Idade : 23
Data de inscrição : 20/12/2008
Notas recebidas : B A
Reputação : 174
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://redscreensoft.blogspot.com

Voltar ao Topo Ir em baixo

Re: draw_sprite e animaçoes [DUVIDA]

Mensagem por saim em Seg 03 Dez 2012, 11:03

Debugue, pinpi. Entre em debug mode e verifique o valor das variáveis image_index e situacao. Se image_index não estiver mudando (não acho que vá estar), dê uma olhada em image_speed (que deveria ser igual a 1, mas pode estar igual a zero, já que a imagem não está mudando).

O estranho é que você não usar o draw_event faz funcionar, isso dá o que pensar...

Ah, já sei! Ao invés de usar um monte de if/else no draw_event, use o draw mais genérico de todos:
Código:
draw_sprite_ext(sprite_index, image_index, x, y, image_xscale, image_yscale, image_angle, image_blend, image_alpha);
Olha só que coisa: se você usar uma sprite só com uma imagem em sprite_index (ou nenhuma sprite), o valor de image_index não tem como sair do zero. Pra chegar no valor do número de imagens da sprite, só tem dois jeitos: ou você altera o valor de sprite_index ou altera manualmente o valor de image_index (na verdade, altera o argumento usado no lugar de image_index, porque eu ACHO que não dá pra definir um image_index maior que o image_number - mas não testei pra saber).

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: draw_sprite e animaçoes [DUVIDA]

Mensagem por Lukbebalduke em Seg 03 Dez 2012, 20:25

saim escreveu:Debugue, pinpi. Entre em debug mode e verifique o valor das variáveis image_index e situacao. Se image_index não estiver mudando (não acho que vá estar), dê uma olhada em image_speed (que deveria ser igual a 1, mas pode estar igual a zero, já que a imagem não está mudando).

O estranho é que você não usar o draw_event faz funcionar, isso dá o que pensar...

Ah, já sei! Ao invés de usar um monte de if/else no draw_event, use o draw mais genérico de todos:
Código:
draw_sprite_ext(sprite_index, image_index, x, y, image_xscale, image_yscale, image_angle, image_blend, image_alpha);
Olha só que coisa: se você usar uma sprite só com uma imagem em sprite_index (ou nenhuma sprite), o valor de image_index não tem como sair do zero. Pra chegar no valor do número de imagens da sprite, só tem dois jeitos: ou você altera o valor de sprite_index ou altera manualmente o valor de image_index (na verdade, altera o argumento usado no lugar de image_index, porque eu ACHO que não dá pra definir um image_index maior que o image_number - mas não testei pra saber).

Vish , entao eu resolvo isso criando uma variavel que varie na velocidade do image_speed de 0 ao seu numero de flames ?

Lukbebalduke

Ranking : Nota B
Número de Mensagens : 764
Data de inscrição : 06/07/2011
Notas recebidas : B - B - A - B
Reputação : 30
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 2

Voltar ao Topo Ir em baixo

Re: draw_sprite e animaçoes [DUVIDA]

Mensagem por Super Maker em Seg 03 Dez 2012, 21:19

Pimp me desculpa por não ter lido o tópico antes e ter dado uma resposta já existente.
A minha conclusão é como o AlexFC e o Saim comentaram, só usando o draw_sprite_ext você vai ter um resultado satisfatório.
Use os argumentos da mesma maneira que são apresentados aqui:
Código:
draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
Fazendo dessa forma, você com certesa vai ter total poder de mudar o argumento que você quizer no momento e evento que você quizer. Não tem erro.

Super Maker

Número de Mensagens : 646
Idade : 33
Data de inscrição : 09/07/2011
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: draw_sprite e animaçoes [DUVIDA]

Mensagem por saim em Seg 03 Dez 2012, 23:38

pinpi escreveu:Vish , entao eu resolvo isso criando uma variavel que varie na velocidade do image_speed de 0 ao seu numero de flames ?
Quase isso. Quer dizer, você pode simplesmente trocar o sprite_index, que a coisa vai. Ao trocar o sprite index, o número de imagens é atualizado, então desenhar o image_index tem que funcionar.

Eu estou presumindo que você não está trocando o sprite_index por causa do código que você postou:
pinpi escreveu:
Código:
if situacao = 1
    draw_sprite(spr_S1_P,image_index,x,y)
if situacao = 2
    draw_sprite(spr_S1_A,image_index,x,y)
if situacao = 3
    draw_sprite(spr_S1_AT,image_index,x,y)
if situacao = 4
    draw_sprite(spr_S1_M,image_index,x,y)
Ja tentei trocar o image_index por 0
Se ao invés disso você mudar a sprite_index junto com a situacao, não vai precisar nem desses if's, nem de definir a variável nova no lugar de image_index.

Mas ainda insisto em debugar pra ter certeza da image_index. Pode ser que a gente se surpreenda. Esses erros estranhos têm origem em lugares estranhos...

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: draw_sprite e animaçoes [DUVIDA]

Mensagem por PedroX em Seg 03 Dez 2012, 23:46

draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)

Por esse código, era pra funcionar.

Então vamos fazer um teste. Coloque:

Código:
draw_sprite_ext(sprite_index, current_time, x, y, 1, 1, image_angle, c_white, 1)

Se funcionar, é bug no image_speed / image_index.

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: draw_sprite e animaçoes [DUVIDA]

Mensagem por Conteúdo patrocinado Hoje à(s) 22:01


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