2
respostas

Percebi que parte do meu ator não esta tendo colisão

o ator está colidindo com os carros, porém somente uma parte próximo a cabeça, o restante do corpo não ha colisão, quero que em toda a parte do corpo haja colisão, podem me ajudar ? segue o link : https://editor.p5js.org/Matheuslc7/sketches/iFmTIRIag

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas

a colisão esta tendo, porém não é no seu corpo todo

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!