1
resposta

[Bug] A colisão ocorre apenas com o último carro.

A colisão ocorre apenas com o último carro da lista. Já localizei duvida semelhante no fórum, porem não compreendia resposta.

https://editor.p5js.org/Farlom/sketches/7t5A_G2TJ

1 resposta

Oi, Farlom! Tudo bem?

Para que o nosso código funcione corretamente, precisamos relembrar a sintaxe do for e aplicá-la no nosso código. Podemos, então, observar que para essa estrutura executar algum comando ele precisa estar descrito entre chaves "{}" após as condições definidas e apresentadas em parênteses, da seguinte forma:

for (inicialização; condição; expressão final) {
  // bloco de código a ser executado
}

Visto isso, no nosso projeto do p5.js precisamos apenas na função colisao(), dentro do documento ator.js, colocar todos os comandos que queremos realizar dentro de chaves correspondentes ao for, deixando a nossa função da seguinte maneira:

function colisao(){
  for (let i = 0; i < imagemCarros.length; i = i + 1){
    colidiu = collideRectCircle(xCarros[i], yCarros[i], 50, 30, xAtor, yAtor, 15);
    if(colidiu){print("colisão")}
  }
}

Espero ter ajudado na compreensão do problema. Caso tenha ficado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!

Um forte abraço e bons estudos!

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