2
respostas

Ideia para resolver a colisão da vaquinha em todos os pontos dos carros!

E aí galera!! Então, quando eu executava o game não reconhecia a colisão da parte debaixo da vaca com a parte superior dos carros. Vi que outros alunos também passaram por algo do tipo e visitando o link dos seus códigos vi que no game a coisa estava igual.

Para resolver isso eu fui ver onde que era o ponto inicial do diâmetro colocado no colliderRectCircle() e, usando um print(yAtor) dentro da função que movimenta o ator, percebi que o ponto que iniciava a imagem era no topo da vaquinha, por isso que a parte de cima da vaquinha tava colidindo e a parte de baixo não.

Para colocar o y da vaquinha no centro da imagem eu somei a metade do tamanho da vaquinha, que eu "batizei" de raio. O raio é a metade da altura da imagem da vaquinha.

let raio= 15;
for (let i = 0; i < imagemCarros.length; i += 1){
    colisao = collideRectCircle(xCarros[i], yCarros[i], comprimentoCarro, alturaCarro, xAtor, yAtor + raio,  raio);

...

Com essa alteração, a vaquinha bate em todos os pontos nos carrinhos.

Pra deixar organizado, eu coloquei o let raio no topo do arquivo juntos com as outras variáveis.

Se tiver alguma sugestão de melhoria ou mudança, só passar aí. Vlw e bons estudos ae pra todo mundo!

https://editor.p5js.org/Hart/sketches/4UYbozKIt

2 respostas

Reparei também que a colisão nas laterais da vaquinha não estavam coerentes, no lado esquerdo colidia um pouco antes de chegar perto da imagem, e no direito um pouco dentro da imagem. Para que a colisão nas laterais da vaquinha também ficassem iguais, adicionei o raio no xAtor.

let raio= 15;
for (let i = 0; i < imagemCarros.length; i += 1){
    colisao = collideRectCircle(xCarros[i], yCarros[i], comprimentoCarro, alturaCarro, xAtor + raio, yAtor + raio,  raio);

Fala, Gabriel! Tudo bom?

Parabéns pelo desenvolvimento e muito obrigado por compartilhar sua ideia conosco!

O gatinho ficou perfeito dentro do jogo como também as configurações que você adicionou! Muito bom mesmo ;-)

Tenho certeza que vai ajudar muitos alunos na nossa plataforma!

Um abraço e até breve!