1
resposta

Usar o collideRectRect não seria mais adequado??

Usando o collideRectCircle a vaquinha não colide na parte inferior.

1 resposta

Olá, Kauê! Tudo certo?

Desculpe a demora em responder você! No OFF Topic infelizmente algumas perguntas se perdem :/

Mas vamos lá!

Com a CollideRectRect a colisão realmente fica mais precisa, mas se usarmos os mesmos valores ela não funciona adequadamente. Olha só no código:

function verificaColisao(){
   //collideRectCircle(x1, y1, width1, height1, cx, cy, diameter)
  for (let i = 0; i < imagemCarros.length; i++){
    colisao = collideRectRect(xCarros[i], yCarros[i], comprimentoCarro, alturaCarro, xAtor, yAtor, 30,30)
    if (colisao){
      voltaAtorParaPosicaoInicial();
      somDaColisao.play();
      if(pontosMaiorQueZero()){
        meusPontos -= 1;
      }
    }
  }
}

A precisão aumenta pois inserimos mais um valor como parâmetro. Mas eu acredito que a melhor forma de identificar a colisão entre atores é criar um Sprite e consumir os seus métodos específicos.

Espero que as informações tenham ajudado você!

Um abraço e bons estudos!