Obrigado por visitar a The Game Makers Brasil 😁 Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais.

Problema com Colisão

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
TootyDev
Novato
Novato
Reações: 0
Mensagens: 10

Problema com Colisão

Mensagem por TootyDev » Sex Fev 24, 2017 4:50 pm

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();
        }
    }
 

Avatar do usuário
gabrielsch
Colaborador
Colaborador
Reações: 0
Mensagens: 234

Re: Problema com Colisão

Mensagem por gabrielsch » Sáb Fev 25, 2017 7:31 pm

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()
}
Imagem

Responder

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 7 visitantes