collideRectCircle Não está verificando dois carros, ele verifica a colisão apenas do primeiro carro! (não consegui colocar o vídeo)
collideRectCircle Não está verificando dois carros, ele verifica a colisão apenas do primeiro carro! (não consegui colocar o vídeo)
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!