Página 1 de 1

Problema com Colisão

Enviado: Sex Fev 24, 2017 4:50 pm
por TootyDev
Eu estou fazendo um jogo estilo RPG onde o personagem lança "facas'' como se fosse projeteis de arma, Eu Programei para que se o projetil colidir com a parede ela é destruída(coisa simples) mas o problema é que ela é excluída mais ou menos 5 Pixels antes de colidir então queria saber... O que tem de errado nesta colisão?!?
Obs1: Já marquei o bloco como sólido
Obs2: A mascara de colisão está certa

Código: Selecionar todos

/// Checagem de Colisão
// Se Colidir = Destroi a Instancia
repeat(10)
    {
        if place_free(x+1,y){x+=1}
        else{
        x = 0;
        instance_destroy();
        }
    }
 

Re: Problema com Colisão

Enviado: Sáb Fev 25, 2017 7:31 pm
por gabrielsch
Recomendo que altere a forma com que faz essa colisão, faça com que o projetil verifique a colisão com a parede e a destrua, ao invés de deixar essa tarefa para o próprio objeto da parede.
No step od objeto do projétil, você pode alterar o código para verificar se alguma colisão acontece entre a instância e as paredes e retornar o ID da instância da parede em caso positivo.
// Se move...
x += 4

// Verifica colisão com um objeto parede e retornar o ID se for o caso
var inst = instance_place(x, y, obj_parede)

// Verifica se colidiu com alguma instância da parede
if inst != noone
{
    // Destroi a instância da parede
    with (inst)
    {
        instance_destroy()
    }
    // Destroi a si mesmo
    instance_destroy()
}