Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Colisão ocorre somente no primeiro carro

Verifiquei meu código porém não estou entendendo por que a colisão so está ocorrendo no primeiro carrinho

https://editor.p5js.org/danielzhh/sketches/PFDStBsWN <<< meu código.

3 respostas
solução!

Oi Daniel! Tudo bem por aí?

A colisão não está acontecendo nos outros carrinhos pois o for que verifica todos os carros está fechado antes da condição if. Isso faz com que esses dois trechos não se conectem.

O código correto fica assim:

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

Me conte se deu certo, Dani!

Forte abraço.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Descobri o Erro meu código estava com {} fechada antes do if(colisao)

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,15);
  }
  if(colisao){
    bateu();
  }
}
/**neste modo não estava funcionando
    fechei os {} de outro modo para a function verificar todas as condições 
    deste jeito :
    **/

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,15);

  if(colisao){
    bateu();
        }
    }
}

E PRONTO :)

funfou

Deu certo Larissa :)