Conectar-se
Quem está conectado
31 usuários online :: 1 usuário cadastrado, Nenhum Invisível e 30 Visitantes

adiplomatique

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 13/05/2012
Número de Mensagens : 275
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 4
Ver perfil do usuáriohttp://www.legioncrafters.tk

Sprite_index no step

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
avatar
Ranking : Nota A
Notas recebidas : A
Data de inscrição : 25/02/2012
Número de Mensagens : 359
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 15

Prêmios
   : 0
   : 1
   : 1
Ver perfil do usuário

Re: Sprite_index no step

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}
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 13/05/2012
Número de Mensagens : 275
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 4
Ver perfil do usuáriohttp://www.legioncrafters.tk

Re: Sprite_index no step

em Seg 30 Jul 2012, 16:33
a condição é if speed > 0 no step
mesmo assim ainda tem esse problema
avatar
Ranking : Nota A
Notas recebidas : A
Data de inscrição : 25/02/2012
Número de Mensagens : 359
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 15

Prêmios
   : 0
   : 1
   : 1
Ver perfil do usuário

Re: Sprite_index no step

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.
avatar
Ranking : Nota D
Notas recebidas : D - C - D - C
Data de inscrição : 14/05/2009
Número de Mensagens : 712
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 7

Prêmios
   : 0
   : 0
   : 1
Ver perfil do usuário

Re: Sprite_index no step

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
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 13/05/2012
Número de Mensagens : 275
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 4
Ver perfil do usuáriohttp://www.legioncrafters.tk

Re: Sprite_index no step

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
}
}
avatar
Ranking : Nota B
Notas recebidas : E + D + C + B + D +B + A
Data de inscrição : 05/11/2011
Número de Mensagens : 635
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 22

Prêmios
   : 1
   : 0
   : 1
Ver perfil do usuário

Re: Sprite_index no step

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
}
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 13/05/2012
Número de Mensagens : 275
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 4
Ver perfil do usuáriohttp://www.legioncrafters.tk

Re: Sprite_index no step

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)
avatar
Ranking : Nota D
Notas recebidas : D - C - D - C
Data de inscrição : 14/05/2009
Número de Mensagens : 712
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 7

Prêmios
   : 0
   : 0
   : 1
Ver perfil do usuário

Re: Sprite_index no step

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}}
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 13/05/2012
Número de Mensagens : 275
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 4
Ver perfil do usuáriohttp://www.legioncrafters.tk

Re: Sprite_index no step

em Seg 30 Jul 2012, 17:21
Não deu, desculpa perguntar mas oque mudou no código além da estrutura?
avatar
Ranking : Nota B
Notas recebidas : E + D + C + B + D +B + A
Data de inscrição : 05/11/2011
Número de Mensagens : 635
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 22

Prêmios
   : 1
   : 0
   : 1
Ver perfil do usuário

Re: Sprite_index no step

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?
avatar
Ranking : Nota D
Notas recebidas : D - C - D - C
Data de inscrição : 14/05/2009
Número de Mensagens : 712
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 7

Prêmios
   : 0
   : 0
   : 1
Ver perfil do usuário

Re: Sprite_index no step

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.
avatar
Ranking : Nota B
Notas recebidas : E + D + C + B + D +B + A
Data de inscrição : 05/11/2011
Número de Mensagens : 635
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 22

Prêmios
   : 1
   : 0
   : 1
Ver perfil do usuário

Re: Sprite_index no step

em Seg 30 Jul 2012, 18:01
Fiz uma engine para você.

mediafire.com ?jvd5ljkc43tqn67
avatar
Ranking : Nota A
Notas recebidas : A
Data de inscrição : 13/10/2011
Número de Mensagens : 106
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 4

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://bigleafeater.tumblr.com/

Re: Sprite_index no step

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.
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 13/05/2012
Número de Mensagens : 275
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 4
Ver perfil do usuáriohttp://www.legioncrafters.tk

Re: Sprite_index no step

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
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum