Olá,
Não sei se já postaram uma implementação semelhante a essa, e se sim, peço desculpas. É que são muitos posts para checar.
Testei as soluções para evitar que a bola fique presa na raquete como linkadas na lição mas, pelo menos em meu código, percebi que a bola ainda ficava presa atrás da raquete.
Decidi então aplicar a outra ideia da lição de resetar a posição da bola para a inicial assim que a mesma ultrapassar os limites das raquetes mais próximos das bordas. A direção de movimento da bola permanecerá igual a direção de movimento inicial (para sudeste).
Segue o código:
function resetarPosicaoBola(){
if (xBolinha - raio < xRaquete || xBolinha + raio > xRaqueteOponente + comprimentoRaquete){
xBolinha = 300;
yBolinha = 200;
velocidadeXBolinha *= -1;
if (velocidadeYBolinha < 0){
velocidadeYBolinha *= -1;
}
}
}
Se houver alguma forma de tornar as linhas mais concisas ainda, postem nos comentários, por favor :)