PauloBittencourt
Novato
Novato
Autor
Mensagens: 2
Registrado em: Qui Jun 13, 2019 2:14 pm
Karma: 0

Ajuda Num Bug

Sex Jan 31, 2020 3:44 pm

Eu criei a colisão e os movimentos do personagem, quando tava no placeholder funcionava, mas depois que coloquei o sprite e fiz o código pra mudar os sprites ta dando erro ao andar pra esquerda ou pra direita, o erro é que o personagem fica flicando pro lado oposto a o botão e não anda, aqui esta o código:
if (!place_meeting(x,y+1,obj_wall))
{
sprite_index = spr_player_JumpRuning;
if (sign(vspd) > 0.5){ sprite_index = spr_player_JumpFall;} else{ sprite_index = spr_player_JumpRuning;}
}
else
{
if (hspd != 0)
{
sprite_index = spr_player_walking;
}
}

if hspd = 0{
if place_meeting(x,y+1,obj_wall) {
sprite_index = spr_player_idle;
}
}

if hspd != 0 {
if place_meeting(x,y+1,obj_wall)
{
sprite_index = spr_player_walking;
}
}
 
grononmc
Membro
Membro
Mensagens: 38
Registrado em: Dom Fev 14, 2016 9:19 pm
Karma: 61

Re: Ajuda Num Bug

Dom Fev 02, 2020 1:09 am

Provavelmente o problema do player ficar travado é que deva ser a mascara de colisão dela, tente deixar todas a sprites, incluindo as de pulo com a mesma mascara colisão(o mesmo tamanho).

O código esta meio ilegível tente deixar mais conciso.
Tipo assim, você utiliza as variáveis que você já possui para fazer as checagens, e tenta utilizar o menos possível de IFs encadeados.
Não testei mais deve funcionar corretamente se você fez os update no vspd e hspd.
if(vspd > 0.5) sprite_index = spr_player_JumpFall;
else sprite_index = spr_player_JumpRuning;

if(vspd == 0){ // Esta no chao
 if(hspd != 0) sprite_index = spr_player_walking;
 else sprite_index = spr_player_idle;
}


Espero ter ajudado.