1
resposta

Problema com colisão

Por algum motivo, o jogo está aplicando a colisão um pouco antes do ator encostar de fato nos carros e isso acontece nos carros com valor y menor que o ator (carro a cima), mas não quando o valor de y é maior (carro a baixo)... Não é uma distância muito longa, mas me incomoda kkk não consegui encontrar uma forma de corrigir isso..

Segue o link do código: https://editor.p5js.org/PabloGibrin/sketches/yGkRFFeKE

1 resposta

Olá Pablo, Tudo bem? não sei se já conseguiu resolver seu problema, mas tentar fazer essa alteração:

esse aqui é seu código:

function checaColisao(){
  for (let i = 0; i < imagemCarros.length; i += 1){
    colisao = collideRectCircle(xCarros[i], yCarros[i], largCarros, altCarros, xAtor, yAtor, 15);
    if (colisao){
      colidiu();
      somColisao.play();
      if (pontosZero()){
        pontos -= 1;
      }
    }
  }
}

Tente mudar o valor 15 no final de collideRectCircle para um valor menor como 2, o raio do personagem ira diminuir.

ficando assim:

function checaColisao(){
  for (let i = 0; i < imagemCarros.length; i += 1){
    colisao = collideRectCircle(xCarros[i], yCarros[i], largCarros, altCarros, xAtor, yAtor, 2);
    if (colisao){
      colidiu();
      somColisao.play();
      if (pontosZero()){
        pontos -= 1;
      }
    }
  }
}

Espero ter ajudado.