Sprite_index no step

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

Sprite_index no step

Mensagem por Esaucm98 em Seg 30 Jul 2012, 16:18

Oi, eu to com uma duvida, preciso usar a variável sprite_index no evento step, mas o problema que os sprites serão animações, assim sendo, como o step executa toda hora, so fica aparecendo a primeira imagem da animação, ou seja não executa a animação, queria saber como resolver isso.

obrigado

Esaucm98

Ranking : Nota D
Número de Mensagens : 275
Data de inscrição : 13/05/2012
Notas recebidas : D
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.legioncrafters.tk

Voltar ao Topo Ir em baixo

Re: Sprite_index no step

Mensagem por GabrielXavier em Seg 30 Jul 2012, 16:27

Se voce colocar so sprite_index vai acontecer isso sempre.
voce tem que criar uma condiçao para o sprite_index exucultar
ex:
if keyboard_check(vk_space){sprite_index = spr_animaçao}

GabrielXavier

Ranking : Nota A
Número de Mensagens : 359
Data de inscrição : 25/02/2012
Notas recebidas : A
Reputação : 15
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 1

Voltar ao Topo Ir em baixo

Re: Sprite_index no step

Mensagem por Esaucm98 em Seg 30 Jul 2012, 16:33

a condição é if speed > 0 no step
mesmo assim ainda tem esse problema

Esaucm98

Ranking : Nota D
Número de Mensagens : 275
Data de inscrição : 13/05/2012
Notas recebidas : D
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.legioncrafters.tk

Voltar ao Topo Ir em baixo

Re: Sprite_index no step

Mensagem por GabrielXavier em Seg 30 Jul 2012, 16:45

aqui ta funconando normal olhe:
https://dl.dropbox.com/s/x264h4snjjdfsjz/ex.gmk?dl=1

Faz uma pequena engine de exemplo e pote-a aqui que alguem te ajudara.
Flws.

Off: Terei que sair.

GabrielXavier

Ranking : Nota A
Número de Mensagens : 359
Data de inscrição : 25/02/2012
Notas recebidas : A
Reputação : 15
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 1

Voltar ao Topo Ir em baixo

Re: Sprite_index no step

Mensagem por Thiago_o_programador em Seg 30 Jul 2012, 16:50

Se for o que eu to pensando coloque:
Código:
if speed > 0 {sprite_index=//animação
image_speed=.3}
pode ser por que você provalvemente setou a image_speed em 0.
Se não for isso basta dar um toque

Thiago_o_programador

Ranking : Nota D
Número de Mensagens : 709
Idade : 19
Data de inscrição : 14/05/2009
Notas recebidas : D - C - D - C
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

http://www.jogosdahora.maisblog.net

Voltar ao Topo Ir em baixo

Re: Sprite_index no step

Mensagem por Esaucm98 em Seg 30 Jul 2012, 17:02

Thiago_o_programador escreveu:Se for o que eu to pensando coloque:
Código:
if speed > 0 {sprite_index=//animação
image_speed=.3}
pode ser por que você provalvemente setou a image_speed em 0.
Se não for isso basta dar um toque

não a image_speed esta normal, oque eu fiz foi mais ou menos assim

//Sprites ajustados por direção e velocidade
if direction>0 && direction < 90 or direction > 270 && direction < 360
{
if speed=0
{
sprite_index=spr_direita_parado
}
else
{
sprite_index=spr_direita_andando
}
}
if direction > 90 && direction < 270
{
if speed=0
{
sprite_index=spr_esquerda_parado
}
else
{
sprite_index=spr_esquerda_andando
}
}

Esaucm98

Ranking : Nota D
Número de Mensagens : 275
Data de inscrição : 13/05/2012
Notas recebidas : D
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.legioncrafters.tk

Voltar ao Topo Ir em baixo

Re: Sprite_index no step

Mensagem por Kapoty em Seg 30 Jul 2012, 17:07

Crie uma var chamada "sprite_minha" e use-a assim :

Na condição de checar a direção coloque
Código:
if speed =  0
{
sprite_minha = "parado"
}

No Step coloque

Código:
if sprite_minha = "parado" and sprite_index !=spr_parado
{
sprite_index=spr_parado
}

Kapoty

Ranking : Nota B
Número de Mensagens : 635
Data de inscrição : 05/11/2011
Notas recebidas : E + D + C + B + D +B + A
Reputação : 22
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

Voltar ao Topo Ir em baixo

Re: Sprite_index no step

Mensagem por Esaucm98 em Seg 30 Jul 2012, 17:12

kapoty escreveu:Crie uma var chamada "sprite_minha" e use-a assim :

Na condição de checar a direção coloque
Código:
if speed =  0
{
sprite_minha = "parado"
}

No Step coloque

Código:
if sprite_minha = "parado" and sprite_index !=spr_parado
{
sprite_index=spr_parado
}

vlw precinto que isso vai da certo, vo testar e edito ;D

edit:

Não, achei que ia funcionar esse , mas ficou a mesma coisa a animação ficou congelada na primeira "image_index".

acho que vou fazer uma engine e mostrar aqui oque ta acontecendo ai fica melhor


Última edição por Esaucm98 em Seg 30 Jul 2012, 17:25, editado 1 vez(es)

Esaucm98

Ranking : Nota D
Número de Mensagens : 275
Data de inscrição : 13/05/2012
Notas recebidas : D
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.legioncrafters.tk

Voltar ao Topo Ir em baixo

Re: Sprite_index no step

Mensagem por Thiago_o_programador em Seg 30 Jul 2012, 17:17

fiz umas mudanças na sintaxe, testa aí e vê se funcionou:
Código:
//Sprites ajustados por direção e velocidade
if (direction>=0&&direction<=90)or(direction>270&&direction<359) {
if speed=0{sprite_index=spr_direita_parado}else{sprite_index=spr_direita_andando}}
if direction>90&&direction<=270 {
if speed=0{
sprite_index=spr_esquerda_parado}else{sprite_index=spr_esquerda_andando}}

Thiago_o_programador

Ranking : Nota D
Número de Mensagens : 709
Idade : 19
Data de inscrição : 14/05/2009
Notas recebidas : D - C - D - C
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

http://www.jogosdahora.maisblog.net

Voltar ao Topo Ir em baixo

Re: Sprite_index no step

Mensagem por Esaucm98 em Seg 30 Jul 2012, 17:21

Não deu, desculpa perguntar mas oque mudou no código além da estrutura?

Esaucm98

Ranking : Nota D
Número de Mensagens : 275
Data de inscrição : 13/05/2012
Notas recebidas : D
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.legioncrafters.tk

Voltar ao Topo Ir em baixo

Re: Sprite_index no step

Mensagem por Kapoty em Seg 30 Jul 2012, 17:22

Esaucm98 escreveu:Não deu, desculpa perguntar mas oque mudou no código além da estrutura?

E o meu modo funcionou?

Kapoty

Ranking : Nota B
Número de Mensagens : 635
Data de inscrição : 05/11/2011
Notas recebidas : E + D + C + B + D +B + A
Reputação : 22
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

Voltar ao Topo Ir em baixo

Re: Sprite_index no step

Mensagem por Thiago_o_programador em Seg 30 Jul 2012, 17:52

como estava:
Código:
if direction>0 && direction < 90 or direction > 270 && direction < 360
se ele estivesse exatamente em 0 não funcionaria, o que eu fiz foi adicionar um >= para evitar bugs futuras, mas quanto aos sprites tente usar o sistema do kapoty, creio que deve funcionar.

Thiago_o_programador

Ranking : Nota D
Número de Mensagens : 709
Idade : 19
Data de inscrição : 14/05/2009
Notas recebidas : D - C - D - C
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

http://www.jogosdahora.maisblog.net

Voltar ao Topo Ir em baixo

Re: Sprite_index no step

Mensagem por Kapoty em Seg 30 Jul 2012, 18:01

Fiz uma engine para você.

http://www.mediafire.com/?jvd5ljkc43tqn67

Kapoty

Ranking : Nota B
Número de Mensagens : 635
Data de inscrição : 05/11/2011
Notas recebidas : E + D + C + B + D +B + A
Reputação : 22
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

Voltar ao Topo Ir em baixo

Re: Sprite_index no step

Mensagem por Thomaz em Seg 30 Jul 2012, 18:07

Thiago olhou certo. Provavelmente o problema do seu código é o fato de que você não está cobrindo todos os ângulos possíveis.

A condição que você colocou é:
if direction>0 && direction < 90 or direction > 270 && direction < 360{}

Suponha que a direção dele seja 0 / 360. Ele não trocará de sprite.
A condição mais correta seria aquela em que você cobre todas as possibilidades:
if direction>=0 && direction <= 90 or direction >= 270 && direction <= 360{}


Outra possível falha no teu código pode ser que você está utilizando o Draw para desenhar a sprite. Então tudo o que tu tens que fazer é utilizar o código "draw_sprite(sprite_index,image_index,x,y)" (Isso somente se você estiver utilizando o evento draw, caso contrário, descarte esta possibilidade).



Outra possível é que existe algum bug onde toda vez que troca a sprite, a subimage começa de novo a contagem.
A sua condição é:
if direction>=0 && direction <= 90 or direction >= 270 && direction <= 360{ if speed=0{}else{}}.

Qual o problema? Toda vez que o game maker checa se a velocidade é maior que zero, ele troca a sprite atual para a sprite "andando". E se toda vez que ele troca a sprite, ele recomeça o contador de imagem? Bem, Tudo o que tu tens que fazer é adicionar mais uma barreira para trocar de sprite. Cheque se a sprite_index já é a que você quer. Trocando em miúdos o seu código ficaria assim:

if direction>=0 && direction <= 90 or direction >= 270 && direction <= 360{
if speed=0 && sprite_index != spr_direita_parado {
sprite_index=spr_direita_parado
}
if speed !=0 && sprite_index != spr_direita_andando{ sprite_index=spr_direita_andando}
}




Faça o teste em cada uma dos possíveis problemas e, se não der certo, recomendo que você poste uma gmk exemplo para que a gente possa ver o que você pode estar fazendo errado.

Thomaz

Ranking : Nota A
Número de Mensagens : 106
Idade : 21
Data de inscrição : 13/10/2011
Notas recebidas : A
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://bigleafeater.tumblr.com/

Voltar ao Topo Ir em baixo

Re: Sprite_index no step

Mensagem por Esaucm98 em Seg 30 Jul 2012, 18:13

Thomaz escreveu:Thiago olhou certo. Provavelmente o problema do seu código é o fato de que você não está cobrindo todos os ângulos possíveis.

A condição que você colocou é:
if direction>0 && direction < 90 or direction > 270 && direction < 360{}

Suponha que a direção dele seja 0 / 360. Ele não trocará de sprite.
A condição mais correta seria aquela em que você cobre todas as possibilidades:
if direction>=0 && direction <= 90 or direction >= 270 && direction <= 360{}


Outra possível falha no teu código pode ser que você está utilizando o Draw para desenhar a sprite. Então tudo o que tu tens que fazer é utilizar o código "draw_sprite(sprite_index,image_index,x,y)" (Isso somente se você estiver utilizando o evento draw, caso contrário, descarte esta possibilidade).



Outra possível é que existe algum bug onde toda vez que troca a sprite, a subimage começa de novo a contagem.
A sua condição é:
if direction>=0 && direction <= 90 or direction >= 270 && direction <= 360{ if speed=0{}else{}}.

Qual o problema? Toda vez que o game maker checa se a velocidade é maior que zero, ele troca a sprite atual para a sprite "andando". E se toda vez que ele troca a sprite, ele recomeça o contador de imagem? Bem, Tudo o que tu tens que fazer é adicionar mais uma barreira para trocar de sprite. Cheque se a sprite_index já é a que você quer. Trocando em miúdos o seu código ficaria assim:

if direction>=0 && direction <= 90 or direction >= 270 && direction <= 360{
if speed=0 && sprite_index != spr_direita_parado {
sprite_index=spr_direita_parado
}
if speed !=0 && sprite_index != spr_direita_andando{ sprite_index=spr_direita_andando}
}




Faça o teste em cada uma dos possíveis problemas e, se não der certo, recomendo que você poste uma gmk exemplo para que a gente possa ver o que você pode estar fazendo errado.

sim mas essa historia de a direção ser =0 e não mudar o sprite não tem nada a ver com o problema, o problema e que a animação CONGELA.
O problema era que no draw_sprite eu setei a image_index para 0 como de costume.

obrigado a você e a todos ;D problema resolvido

Esaucm98

Ranking : Nota D
Número de Mensagens : 275
Data de inscrição : 13/05/2012
Notas recebidas : D
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.legioncrafters.tk

Voltar ao Topo Ir em baixo

Re: Sprite_index no step

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


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