Oi, Matheus! Tudo bem?
Agradeço por aguardar nosso retorno.
Este problema ocorre devido ao formato e tamanho das imagens utilizadas, uma vez que as imagens podem ter dimensões diferentes das que foram apresentadas em aula e além disso, o formato também pode variar. Um exemplo disso é o objeto ator, que na aula possui formato circular e no seu jogo possui um formato retangular. Sendo assim, uma forma de aumentar a colisão entre o ator e os carros, é alterar a função de colisão de collideRectCircle() para a collideRectRect(), que condiz com o formato do ator (ganso) utilizado. A função collideRectRect() possui os seguintes parâmetros:
collideRectRect(x, y, largura, altura, x2, y2, largura2, altura2 )
Em seu código, no arquivo ator.js, dentro da função verificaColisao(), substitua a variável colisao
pelo código abaixo:
colisao = collideRectRect(xCarros[i], yCarros[i],cCarros[i], aCarros[i],xAtor, yAtor, 35,35)
Após isso, execute o código e verifique se obterá êxito na colisão.
Uma segunda alternativa sem modificar a função de colisão, neste caso utilizando a própria função collideRectCircle(), é somar o tamanho do diâmetro nas posições x
e y
do ator, dessa forma aproximamos a colisão do ator com os carros:
colisao = collideRectCircle (xCarros[i], yCarros[i], cCarros[i], aCarros[i],xAtor + 15, yAtor + 15, 15)
Realize as alterações e me conte se o jogo funcionou direitinho!
Espero ter ajudado, em caso de dúvidas fico à disposição. E conte sempre com a Alura para evoluir seus estudos.
Bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!