oi Boa tarde, o quando eu movimento meu Ator antes mesmo dele chega perto do carro ele volta quando um carro passa em cima dele ai volta no inicio
oi Boa tarde, o quando eu movimento meu Ator antes mesmo dele chega perto do carro ele volta quando um carro passa em cima dele ai volta no inicio
Olá Hugo! Tudo bem?
O problema está ocorrendo pois no código o CarroComprimento foi definido como um Array que recebe 50 em todas as suas posições e CarroAltura também foi declarado como um Array, como podemos observar no inicio documento carro.js. Entretanto, no documento ator.js, na função verificaColisao() os arrays CarroComprimento e CarroAltura não estão sendo declarados como arrays e sim como se fossem apenas variáveis.
Dessa forma, nessa função devemos apenas adicionar o identificador de arrays (colchetes [] ) e adicionar um i dentro dele, para que o array seja percorrido por inteiro. Assim, a função verificaColisao() no documento ator.js deverá ficar da seguinte maneira:
function verificaColisao(){
//collideRectCircle(x1, y1, width1, height1, cx, cy, diameter)
for (let i = 0; i < imagemCarros.length; i++){
colisao = collideRectCircle(xCarros[i], yCarros[i],CarroComprimento[i], CarroAltura[i], xAtor, yAtor, 15)
if (colisao){
colidiu();
}
}
}Espero ter ajudado! Caso tenha restado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!
Um forte abraço e bons estudos!
muito obrigado pela ajuda