Opa Roger, tudo certo?
Com relação ao problema encontrado, em que momento é realizada a soma de xBolinha + diâmetro
?
Para o problema da soma dos pontos, no caso do jogador está funcionando normalmente, porém, no código do oponente:
function marcaPonto() {
if (xBolinha > 590) {
meusPontos += 1;
ponto.play();
xBolinha = 300;
yBolinha =200;}
}
if (xBolinha < 10) {
pontosOponente += 1;
ponto.play();
xBolinha = 300;
yBolinha =200 ;}
O if que realiza a contagem dos pontos do oponente está fora da função marcaPonto(), não sendo chamada dentro da função draw() como é realizado com o restante, sendo assim, modificar o código mudando a posição de fechamento resolverá:
function marcaPonto() {
if (xBolinha > 590) {
meusPontos += 1;
ponto.play();
xBolinha = 300;
yBolinha =200;}
if (xBolinha < 10) {
pontosOponente += 1;
ponto.play();
xBolinha = 300;
yBolinha =200 ;}
}
Analisando seu código um erro que travava a bolinha no centro era a passagem de valores na função verifColisaoBorda(), onde a sua condição estava subtraindo o raio e sendo comparado a menor que o tamanho da tela (width), somando o raio e comparando a se for maior que o width o problema é resolvido:
if(xBolinha+raio > width||xBolinha + raio < 0){
velXBolinha*=-1
}
Se precisar de ajuda ou tiver alguma dúvida, estou à disposição, conte comigo!
Tenha um bom dia e bons estudos.
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓