O código completo pode ser acessado clicando aqui Caso acessar o código pelo link verá que deixei as variáveis abreviadas para uso técnico, porém as deixei de maneira didática neste tópico;
function BolinhaPresa(){
//presa DENTRO da raquete
if(esquerdaBolinha < frenteRaquete &&
yBolinha > superiorRaquete &&
yBolinha < inferiorRaquete){
xBolinha = frenteRaquete+raio;
}else if (direitaBolinha > frenteRaqueteOponente &&
inferiorBolinha > superiorRaqueteOponente &&
superiorBolinha < inferiorRaqueteOponente){
xBolinha = frenteRaqueteOponente-raio;
}
//presa na borda da tela (atrás das raquetes)
if (esquerdaBolinha < 0){
xBolinha = frenteRaquete+raio;
}else if (direitaBolinha > width){
xBolinha = frenteRaqueteOponente-raio;
}
}
Se preferir não criar as variáveis adicionais presentes no código acima, deixarei um anexo das substituições possíveis.
// substituições possíveis para as variáveis da bolinha
superiorBolinha = yBolinha-raio;
inferiorBolinha = yBolinha+raio;
direitaBolinha = xBolinha+raio;
esquerdaBolinha = xBolinha-raio;
//substituições possíveis das variáveis da raquete
superiorRaquete = yRaquete;
inferiorRaquete = yRaquete+comprimentoRaquete;
frenteRaquete = xRaquete+larguraRaquete;
xCostasRaquete = xRaquete;
superiorRaqueteOponente = yRaqueteOponente;
inferiorRaqueteOponente = yRaqueteOponente+comprimentoRaquete;
frenteRaqueteOponente = xRaqueteOponente;
xCostasRaqueteOponente = xRaqueteOponente+larguraRaquete;
Aceito sugestões para aperfeiçoamento. : )