Olá, Paulo, tudo bem?
Obrigada pela paciência em obter o retorno.
Editei o seu post utilizando a opção </> daqui do fórum, assim o seu código fica em trecho de código e mais legível para outros alunos. Caso queira explorar mais outras funcionalidades, deixo esse vídeo para turbinar seus estudos utilizando o fórum:
Analisei o seu código e notei que optou por não utilizar a biblioteca que o professor utilizou, neste caso a raquete oponente terá a mesma lógica, mas por estar em uma posição diferente haverá uma diferença no código.
Na função verificaColisaoRaqueteAd()
na verificação utilizaremos:
xBolinha + raio > xRaqueteOponente - raqueteComprimento
.
Isso porque queremos achar o ponto de contato a direita, por isso somamos o raio (do X da bola) .Também queremos agora achar o ponto de contato à esquerda da raquete oposta, e por isso, subtraímos o comprimento da raquete oposta (ao seu X). Por fim, precisamos verificar se o ponto de contato da bola passou do ponto de contato da raquete oposta, e por isso usamos o maior que.
Na segunda verificação utilizaremos yBolinha + raio > yRaqueteOponente
que fará a verificação na parte abaixo da bolinha.
Segue o código com as devidas alterações:
function verificaColisaoRaqueteAd(){
if (xBolinha + raio > xRaqueteOponente - raqueteComprimento &&
yBolinha + raio > yRaqueteOponente&&
yBolinha - raio < yRaqueteOponente + raqueteAltura){
velocidadeXBolinha *= -1;
}
}
Espero ter ajudá-lo.
Reforço que estou à disposição para tirar dúvidas.
Abraços.
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!