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
avatar
Data de inscrição : 09/04/2009
Número de Mensagens : 14
Insígnias de JAM :

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

Problema com movimentação de personagem

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;
}}}
avatar
Data de inscrição : 03/08/2008
Número de Mensagens : 1156
Insígnias de JAM :

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

Prêmios
   : 1
   :
   :
Ver perfil do usuáriohttp://www.ciganospictures.hd1.com.br

Re: Problema com movimentação de personagem

em Dom 12 Abr 2009, 13:50
PLACE FREE NAO RETORNA VALORES, APENAS 1 E 0 MEU AMIGO
avatar
Data de inscrição : 03/01/2009
Número de Mensagens : 377
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: Problema com movimentação de personagem

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...
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