1
resposta

Ponto de colisão

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?

1 resposta

Bacana, Bernardo!

Acredito que isso seja melhor visto quando inicia novamente na parte de baixo, correto?

Se for isso, eu só aumentei o valor da variável yInicialAtor para 400para que ele possa entrar em cena com "mais tranquilidade" e não já em cima de outro carro.

Obrigado por compartilhar sua lógica

Um abraço e bons estudos, Bernardo!