Olá, observei no meu projeto que quando um carro passava em um ponto acima do ator a colisão era acionada, mesmo que os dois não houvessem colidido realmente. Então eu criei um circulo para compartilhar o "xAtor" e "yAtor", e observar se os pontos estavam alinhados com o centro do ator, com esse teste verifiquei que essas coordenadas estavam na realidade vinculadas a borda da imagem. Para contornar esse problema eu ajustei o "x" e o "y" da colisão com base na diferença de centro do ator com o círculo criado.
https://editor.p5js.org/bernardo4353/sketches/u4hriMSgl
function verificaColisao(){
for (let i=0; i < xCarros.length; i++){
colidiu = collideRectCircle((xCarros[i]), (yCarros[i]), comprimentoCarro, alturaCarro, xAtor+15, yAtor+14, 30);
if(colidiu){
reposicionaAtor();
}
}
}
Existe uma maneira diferente de realizar isso? talvez mudando o ponto de vinculação da imagem com o plano?