Problemas com animação de Sprite

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

Problemas com animação de Sprite

Mensagem por Philippe Alves Lepletier em Qui 01 Mar 2012, 23:57

E ae galera, sou novo em desenvolvimento de jogos com game Maker e a pouco tempo peguei o 8.1 para aprender.
Estou fazendo um jogo relativamente simples. o Jogador tem que apertar ou para cima ou para baixo para fazer o personagem esqueivar de obistáculos.
O meu problema está sendo na animação de movimentação. O personagem fica andando sozinho, e se o jogador aperta para seta para cima, ele cresce e fica na posição do meio. se apertar para cima de novo ele cresce mais um pouco e fica em outra posição acima. Se o jogador aperta para baixo a mesma coisa acontece com ele decrescendo a sua posição.
O problema esta nas animações de transição entre essas posições. São 3 no total: em baixo, no meio, em cima. entre essas posições deveria acontecer uma animação de transição para ficar bonitinho o personagem se movendo entre as posições, só que ta bugando sinistro as animações. elas acontecem de vez em quando, e as vezes troca as animções!

vou colocar aqui o código do jogo para vocês verem como eu fiz:

===================================================================
//No evento step

if(indexDoEstado == 0){
estouEmBaixo = true;
estouNoMeio = false;
estouEmCima = false;
}

if(indexDoEstado == 1){
estouNoMeio = true;
estouEmBaixo = false;
estouEmCima = false;
}

if(indexDoEstado == 2){
estouEmBaixo = false;
estouNoMeio = false;
estouEmCima = true;
}

//troca de sprites

if(paraSprite != true){

if(indexDoEstado == 0)sprite_index = sp_PlayerMove; // toca a animação do personagem em baixo
if(indexDoEstado == 1)sprite_index = sp_PlayerMove1X;// toca a animação do personagem no meio
if(indexDoEstado == 2)sprite_index = sp_PlayerMove2X;// toca a animação do personagem em cima

}else{

if(indexDoEstado == 0){
sprite_index = sp_Drop1Xto0; //animação de transição entre ir do meio para baixo
if(image_index == 7){
sprite_index = sp_PlayerMove;
paraSprite = false;
}
}//fim indexEstado = 0

if(indexDoEstado == 1){
if(sprite_index == sp_PlayerMove){
sprite_index = sp_PlayerExtend1X; //animação de transição entre ir de baixo para o meio
if(image_index == 7){
sprite_index = sp_PlayerMove1X;
}
paraSprite = false;
}else{
if(sprite_index == sp_PlayerMove2X){
sprite_index = sp_Drop2XTo1X; //animação de transição entre ir de cima para o meio
if(image_index == 7){
sprite_index = sp_PlayerMove1X;
paraSprite = false;
}
}
}
}//Fim indexEstado = 1

if(indexDoEstado == 2){
sprite_index = sp_PlayerExtend2x; //animação de transição entre ir do meio para cima
if(image_index == 7){
sprite_index = sp_PlayerMove2X;
paraSprite = false;
}

}//Fim indexEstado = 2
}//fim do if paraSprite

==========================================================================


Aqui está os eventos de teclado, o Up é o mesmo que o Down só que um soma a variável indexDoEstado e o outro subitrai:





Philippe Alves Lepletier

Número de Mensagens : 5
Data de inscrição : 24/11/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Problemas com animação de Sprite

Mensagem por Thyago em Sex 02 Mar 2012, 01:44

.Cara acho que você usa muitas linhas desnecessarias,me perdi no seu código,veja.
Isso:


Código:
if(indexDoEstado == 0){
estouEmBaixo = true;
estouNoMeio = false;
estouEmCima = false;
}

if(indexDoEstado == 1){
estouNoMeio = true;
estouEmBaixo = false;
estouEmCima = false;
}

if(indexDoEstado == 2){
estouEmBaixo = false;
estouNoMeio = false;
estouEmCima = true;
}

faz o mesmo que isso;
Código:
estouEmBaixo =(indexDoEstado == 0)
estouNoMeio = (indexDoEstado == 1)
estouEmCima=(indexDoEstado == 2)

Thyago

Ranking : Nota B
Número de Mensagens : 1092
Idade : 30
Data de inscrição : 24/08/2009
Notas recebidas : D+B+B+C+A
Reputação : 31
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 1
   :

Voltar ao Topo Ir em baixo

Re: Problemas com animação de Sprite

Mensagem por Philippe Alves Lepletier em Sex 02 Mar 2012, 01:54

Blz, é q ainda to me acostumadno com essa linguagem dele. vou tentar enxugar aqui dessa forma.

Eu estava aqui testando e tentei de tudo...tentei colocar esse código de troca dos sprites no end stemp, tentei fazer a troca por tempo com alarm[] e nada. parece q ele passa por cima das animações de transição e as vezes não...é bizarro!

Philippe Alves Lepletier

Número de Mensagens : 5
Data de inscrição : 24/11/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Problemas com animação de Sprite

Mensagem por Conteúdo patrocinado Hoje à(s) 17:20


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