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
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. ;)