Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

problema com a raquete

agora que pus som no jogo percebi que a toda a região acima da raquete é considerada como a raquete Código abaixo https://editor.p5js.org/adrianbarbosa514/sketches/j52jLTARj

1 resposta
solução!

Oi, Adrian! Tudo bem?

O problema ocorre devido às funções responsáveis por verificar a colisão entre a bolinha e a raquete, verificaColisaoRaquete() e verificaColisaoRaqueteOponente().

Inicialmente, podemos notar que na função verificaColisaoRaquete() estamos limitando a pontuação à região abaixo da localização da raquete, pois tanto a extremidade inferior, quanto a extremidade superior da bolinha estão associadas, dentro da condição do if, a uma posição menor que a posição da extremidade inferior da raquete.

Somado a isso, na função verificaColisaoRaqueteOponente() a bolinha deveria ter a localização da sua extremidade superior (xBolinha - raio) menor que a posição da extremidade inferior da raquete (xRaquete + altura), assim como, ter a localização da sua extremidade inferior (xBolinha + raio) maior que a localização da extremidade superior da raquete (xRaquete).

Dessa forma, as nossas funções devem ficar da seguinte maneira:

function verificaColisaoRaquete(){
  if (xBolinha - raio < xRaquete + comprimento && 
      yBolinha - raio < yRaquete + altura && 
      yBolinha + raio > yRaquete){

    velocidadeXBolinha *= -1;
    raquetada.play();
  }
}

function verificaColisaoRaqueteOponente(){
  if (xBolinha + raio > xRaqueteOponente && 
      yBolinha - raio < yRaqueteOponente + altura && 
      yBolinha + raio > yRaqueteOponente){

    velocidadeXBolinha *= -1;
    raquetada.play();
  }
}

Espero ter ajudado na resolução do poblema! Caso tenha restado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!

Um forte abraço e bons estudos!

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