Problema com movimentação de personagem

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

Problema com movimentação de personagem

Mensagem por MooprheuSs em Dom 12 Abr 2009, 13:18

Olá galera,

Estou com problemas na movimentação do meu personagem. Estou tentando criar uma movimentação mais complexa dos que as básicas para jogos em plataforma, tipo quero que meu personagem possa dar giro no ar quando estiver a uma certa altura e em alturas mais baixas ele apenas dê um pulo normal.

O principal problema é com a gravidade: quando aperto para cima ele dá um pulo muito alto e outras vezes ele sobe tão alto que desaparece da tela. Outra coisa é que se movimenta mal ou nem sem movimenta quando está em cima de um prédio.

Quem pude ajudar e mostrar os erros, segue os códigos usados:


Evento create do personagem:

Código:
parado_d = spr_player_parado_dir
parado_e = spr_player_parado_esq
agachado_d = spr_player_agachado_dir
agachado_e = spr_player_agachado_esq
andando_d = spr_player_andando_dir
andando_e = spr_player_andando_esq
correndo_d = spr_player_andando_dir
correndo_e = spr_player_andando_esq
pulando_d = spr_player_agachado_dir
pulando_e = spr_player_agachado_esq
subindo_d = spr_player_subindo_dir
subindo_e = spr_player_subindo_esq
giro_d = spr_player_agachado_dir
giro_e = spr_player_agachado_esq

image_index = 0
image_speed=0.2;
parado=true;
andando=false;
correndo=false;
noar=false;
giro_ar=false;
lado=1; //Para definir o lado do player 1=Dir; 0=Esq
vspeed=0;
gravity=0;

Evento step:
Código:

if (place_free(x,y+1)<(y+5))
{gravity=0.5; noar=true;
if (place_free(x,y+5)>(y+1))
{gravity=0.3; giro_ar=true; noar=false;
} else
 {gravity=0; noar=false; giro_ar=false;
 }

//Definiões de pulo
if (keyboard_check_pressed(vk_up)) && ! (place_free(x,y+1) < (y+5))
{
vspeed=-5; noar=true; gravity=0.5;
}

if (keyboard_check_pressed(vk_up)) && ! (place_free(x,y+5) > (y+1))
{
vspeed=-8; giro_ar=true; noar=false; gravity=0.3;
}

if (vspeed>12)
vspeed=12;

if (keyboard_check(vk_left)) && ! (keyboard_check(vk_right)) && (place_free(x-3,y))
{x-=3; lado=0; andando=true; parado=false;
}

if (keyboard_check(vk_right)) && ! (keyboard_check(vk_left)) && (place_free(x+3,y))
{x+=3; lado=1; andando=true; parado=false;
}

if ! (keyboard_check(vk_left)) && ! (keyboard_check(vk_right))
{andando=false; parado=true;
}

//Sprites
if (noar==false)
if (giro_ar==false)

{
if (andando=true) && (lado==1)
{
sprite_index=andando_d;
}
if (andando=true) && (lado==0)
{
sprite_index=andando_e;
}
if (andando==false) && (parado==true) && (lado==1)
{
sprite_index=parado_d;
}
if (andando==false) && (parado==true) && (lado==0)
{
sprite_index=parado_e;
}
}
else
{
if (vspeed>0) || (vspeed<0) && (lado==1)
{
sprite_index=pulando_d;
}
if (vspeed>0) || (vspeed<0) && (lado==0)
{
sprite_index=pulando_e;
}}}

MooprheuSs

Número de Mensagens : 14
Idade : 29
Data de inscrição : 09/04/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.techmais.net/

Voltar ao Topo Ir em baixo

Re: Problema com movimentação de personagem

Mensagem por Gusba em Dom 12 Abr 2009, 13:50

PLACE FREE NAO RETORNA VALORES, APENAS 1 E 0 MEU AMIGO

Gusba

Número de Mensagens : 1156
Idade : 21
Data de inscrição : 03/08/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   :
   :

http://www.ciganospictures.hd1.com.br

Voltar ao Topo Ir em baixo

Re: Problema com movimentação de personagem

Mensagem por M.A.S. em Dom 12 Abr 2009, 14:55

O gusba tá certo. Cara, porque você não põe o controle sensitivo? Tipo se eu apertar mais tempo a tecla o personagem pula mais alto. Acho que fica melhor...

M.A.S.

Número de Mensagens : 377
Data de inscrição : 03/01/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Problema com movimentação de personagem

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


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