Personagem mudando a escala ao movimentar pros lados
Enviado: Qui Jan 25, 2024 1:54 pm
Ola, estou com um problema de movimentação no game maker. Estou fazendo meu personagem se movimentar no eixo X com o A/D e pular com o espaço, porem, precebi que ao andar com o A/D, os sprites do personagem se achatavam.
Acredito que o problema esteja nessa parte do meu codigo
if(hspd !=0)
{
image_xscale = sign(hspd);
}
Esse codigo reescala o personagem pra -1 ou 1, dependendo a direção que ele esta se movendo, porem não esta funcionando perfeitamente. Vou deixar aqui em baixo o codigo da minha movimentação completa.
if(move)
{
sprite_index = rodando_sheat;
move_dir = point_direction(0,0,key_right - key_left,0);
move_speed = approach(move_speed,move_speed_max,acc);
}
else
{
sprite_index = sprite_sheat;
move_speed = approach(move_speed,0,dcc);
}
hspd = lengthdir_x(move_speed,move_dir);
if(hspd !=0)
{
image_xscale = sign(hspd);
}
var chao = place_meeting(x,y+1,bloco);
if(chao)
{
fake_time = fake_time_max;
}
else
{
fake_time--;
if(vspd < 0)
{
sprite_index = jump;
}
else if(vspd > 0)
{
sprite_index = down;
}
}
Acredito que o problema esteja nessa parte do meu codigo
if(hspd !=0)
{
image_xscale = sign(hspd);
}
Esse codigo reescala o personagem pra -1 ou 1, dependendo a direção que ele esta se movendo, porem não esta funcionando perfeitamente. Vou deixar aqui em baixo o codigo da minha movimentação completa.
if(move)
{
sprite_index = rodando_sheat;
move_dir = point_direction(0,0,key_right - key_left,0);
move_speed = approach(move_speed,move_speed_max,acc);
}
else
{
sprite_index = sprite_sheat;
move_speed = approach(move_speed,0,dcc);
}
hspd = lengthdir_x(move_speed,move_dir);
if(hspd !=0)
{
image_xscale = sign(hspd);
}
var chao = place_meeting(x,y+1,bloco);
if(chao)
{
fake_time = fake_time_max;
}
else
{
fake_time--;
if(vspd < 0)
{
sprite_index = jump;
}
else if(vspd > 0)
{
sprite_index = down;
}
}