Olá, Marcelo, tudo bem?
Obrigada pela paciência por um feedback.
Para a sensibilidade da colisão do ator com o carro, dependerá do tamanho do diâmetro utilizado na função verificaColisao
, utilizamos o valor 15, mas você poderá testar um número maior. Testei o valor 35 e aparentemente a colisão fica mais assertivo.
Segue o código com a alteração:
function verificaColisao(){
//collideRectCircle(x1, y1, width1, height1, cx, cy, diameter)
for (let i = 0; i < imagemCarros.length; i++){
colisao = collideRectCircle(
xCarros[i],
yCarros[i],
comprimentoCarro,
alturaCarro,
xAtor,
yAtor,
35)//valor modificado visando uma colisao mais assertiva
if (colisao){
voltaAtorParaPosicaoInicial();
let posicaoSom = getRandomNumber(0, listaDeSons.length - 1);
listaDeSons[posicaoSom].play();
console.log("Touco o " + (posicaoSom + 1) + "º som.");
}
}
}
Porém, não entendi muito bem o porquê da colisão está com comportamento diferente nas duas vias, pois a função verificaColisao
deveria funcionar igualmente independente dos sentidos. Portanto, peço que me envie o link para assim olhar com mais atenção e identificar qual o erro que está gerando esse comportamento.
Ficarei no aguardo.
Abraços,
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!