2
respostas

[Sugestão] Solução sem biblioteca para a bolinha colidir na raquete do oponente

Muitos de nos que não quiseram utilizar a solução com a biblioteca encorporada encontraram um problema com a colisão a raquete oponente, após pensar um pouco sobre a lógica do problema cheguei a essa solução: imagem da função de colisão com a raquete oponente

Minha solução se assemelha muito com a do outro Gabriel que fez a mesma postagem. Porem no meu if, na última comparação, não subtrai o valor do comprimento da raquete(no meu caso é o raqueteLargura), fiz isso porque, caso você pare a raquete oponente, a bolinha precisa bater a parede, e na outra solução ela não batia acima da raquete. segue o código copiado:

function verificaColisaoRaqueteOponente(){
  if (xBolinha + raio > xRaqueteOponente && yBolinha + raio < yRaqueteOponente + raqueteLargura && yBolinha + raio > yRaqueteOponente ){
  velocidadeXBolinha *=-1;
  }
}
2 respostas

Oi, Gabriel! Tudo bem?

Excelente solução para a ausência de biblioteca! Parabéns pela lógica e pelo desempenho!

Tenho apenas como sugestão a alternância da variável raqueteLargura por raqueteAltura,pois a largura da raquete, nessa situação, corresponde ao nosso eixo x, enquanto a altura corresponde ao nosso eixo y, tornando a comparação possível. Dessa forma, deixaremos o nosso código da seguinte maneira:

function verificaColisaoRaqueteOponente(){
  if(xBolinha + raio > xRaqueteOponente && yBolinha + raio <
  yRaqueteOponente + raqueteAltura && yBolinha + raio > yRaqueteOponente){
    velocidadeXBolinha *= -1;
  }
}

Espero ter ajudado!

Caso tenha ficado alguma dúvida, sinta-se a vontade em comunicar, estou à disposição!

Um forte abraço e bons estudos!

Caso este post tenha te ajudado, por favor, marcar como solucionado ✓

meu voce foi um anjo agr salvo muito