Página 1 de 1

Bug em colisão vertical  Tópico resolvido

Enviado: Ter Fev 13, 2024 10:46 pm
por Sprydank
Ta acontecendo um bug estranho na colisão do pulo, não importa a forma que eu bata a cabeça em algum obj, o personagem sempre é teleportado pra cima, ja selecionei como padrão a mascara de colisão do sprite principal no objeto do personagem, segue o meu código de colisão:

ps: o bug só acontece na colisão vertical, quando o personagem vai bater a cabeça em algo, a colisão horizontal funciona perfeitamente
var _col = instance_place(x+hvel,y,obj_chao);//instance_place checa se houve uma colisão entre os parametros

if _col { // se houver colisão

//caso estiver indo pra direita
if hvel>0{
//grudando na parte esquerda da parrede
x = _col.bbox_left +(x-bbox_right); // COMANDO PARA OTIMIZAR A AREA DE COLISAO

}
//caso estiver indo pra esquerda
if hvel<0{
//grudando da direita da parede
x = _col.bbox_right +(x-bbox_left); //COMANDO PARA OTIMIZAR A AREA DE COLISAO

}

hvel = 0;
}

//COLISAO VERTICAL
var _col = instance_place(x,y+vvel,obj_chao);
if _col{

// indo pra baixo
if y>0{ // grudando no topo da chao
y = _col.bbox_top + (y-bbox_bottom); //COMANDO PARA OTIMIZAR A AREA DE COLISAO
}

//cima
if y<0{ // grudando no teto
y = _col.bbox_bottom + (y - bbox_top);
}


vvel=0;
}



#endregion

Re: Bug em colisão vertical

Enviado: Ter Fev 13, 2024 11:05 pm
por ValdeciVieira
Em vez de:

Código: Selecionar todos

y>0 e y<0
devia estar verificando por:

Código: Selecionar todos

vvel>0 e vvel<0

Re: Bug em colisão vertical

Enviado: Qua Fev 14, 2024 10:25 pm
por Sprydank
ja tinha consertado, era isso mesmo, valeu dms