Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Bug] collideRectCircle Não está verificando dois carros, ele verifica a colisão apenas do primeiro carro!

collideRectCircle Não está verificando dois carros, ele verifica a colisão apenas do primeiro carro! (não consegui colocar o vídeo)

https://editor.p5js.org/brzgusta/sketches/WCfufYQby

1 resposta
solução!

Oi, Gustavo! Tudo bem?

O problema está ocorrendo pois no documento ator.js, dentro da função verificaColisao(), a estrutura condicional if (que confere se houve colisão e executa a função que retorna o ator para a posição inicial) não está sendo declarada dentro do for (que é usado para percorrer todos os carros presentes na lista imagemCarros), por isso a colisão está sendo aplicada apenas uma vez, para apenas um dos carros.

Para resolvermos o problema e a colisão funcionar para todos os carros, devemos colocar o if dentro do for para que ao percorrer cada um dos carrinhos a função condicional seja aplicada para cada um deles.

Dessa forma, a função verificaColisao() deve ficar da seguinte maneira:

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

    if (colisao){
      colidiu();
    }
  }                                                    
}

Espero ter ajudado! Caso tenha restado alguma dúvida, sinta-se a vontade em comunicar, estou à disposição!

Um forte abraço e bons estudos!

Caso este post tenha te ajudado, por favor, marcar como solucionado ✓