Vi cada tópico no forum, mas não consegui encontrar uma solução - e revi o projeto também, mas não encontrei nada. Tô tentando entender o porquê disso para continuar o curso.
Link do projeto: https://editor.p5js.org/ImRickelmy/sketches/BqKhvA-gB
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Vi cada tópico no forum, mas não consegui encontrar uma solução - e revi o projeto também, mas não encontrei nada. Tô tentando entender o porquê disso para continuar o curso.
Link do projeto: https://editor.p5js.org/ImRickelmy/sketches/BqKhvA-gB
Olá Rickelmy.
dei uma olhada no seu código e encontrei o problema. Na sua função
function verificarColisao(){
for (let i = 0; i < imagemCarros.length; i = i + 1){
colisao = collideRectCircle (xCarros [i], yCarros [i], comprimentoCarros [i], alturaCarros [i], xVaquinha, yVaquinha, 24, 21);
if (colisao){
colidiu();
}
}
}você coloca os parâmetros comprimento[i] e altura[i], porém se você for no seu arquivo carros.js você vai ver que comprimentoCarros e alturaCarros não estão em uma lista.
//listas carros
let xCarros = [600, 600, 600];
let yCarros = [45, 100, 155];
let velocidadeCarros = [2, 2.5, 3.2];
let comprimentoCarros = 40;
let alturaCarros = 32;
Quando você coloca comprimentoCarros [i] e alturaCarros [i] no seu for de sua função, o JavaScripit vai ler como se essas variáveis fossem listas e vai tentar pegar os valores da lista usando o valor de [i] como referência de posição, ou seja, se i for 0 ele vai buscar o valor na posição 0, se i for 1 vai buscar na posição 1 e assim por diante.
Como as variáveis comprimentoCarros e alturaCarros não são listas, você deve passar elas sem colocar o [i], passa apenas o nome das variáveis.
Muito obrigado, Bruno! Eu não reparei nesse detalhe. ;)