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