1
resposta

Deu certo!

//variáveis da bolinha
let xBolinha = 300;
let yBolinha = 200;
let diametro = 22;
let raio = diametro/2;

//velocidade da bolinha
let velocidadeXBolinha = 6;
let velocidadeYBolinha = 6;
;

//variáveias da raquete
let xRaquete = 5;
let yRaquete =150;
let raqueteComprimento = 10;
let raqueteAltura = 90;

//variáveis oponente

let xRaqueteOponente = 585;
let yRaqueteOponente = 150;
let velocidadeYOponente;

//variáveis placar jogo
let meusPontos = 0;
let pontosOponente = 0;

//sons do jogo
let raquetada;
let ponto;
let trilha;

let chanceDeErrar = 0;

function preload(){
  trilha = loadSound ("trilha.mp3");
  ponto = loadSound ("ponto.mp3");
  raquetada = loadSound ("raquetada.mp3");
}

colidiu = false;

function setup() {
  createCanvas(600, 400);
  trilha.loop();
}

function draw() {
  background(0);// cor fundo/tela;
  mostraBolinha();
  movimentaBolinha();
  verificaColisaoBorda();
  mostraRaquete(xRaquete, yRaquete);
  movimentaMinhaRaquete();
  verificaColisaoRaquete(xRaquete, yRaquete);                  
  verificaColisaoRaquete(xRaqueteOponente,yRaqueteOponente);
  mostraRaquete(xRaqueteOponente, yRaqueteOponente);
  //movimentaRaqueteOponente();
  jogaComOponente();
  incluiPlacar();
  marcaPonto();
}


function mostraBolinha (){

  circle (xBolinha, yBolinha, diametro);
}

function movimentaBolinha(){

  xBolinha += velocidadeXBolinha;//
  yBolinha += velocidadeYBolinha;

}

function verificaColisaoBorda(){

  if (xBolinha + raio > width || 
      xBolinha - raio < 0) {
        velocidadeXBolinha *= -1;// inverte movimento da bolinha
  }
  if (yBolinha + raio > height || 
      yBolinha - raio < 0){
    velocidadeYBolinha *= -1;
  }
}
function mostraRaquete(x, y){
    rect (x, y, raqueteComprimento, raqueteAltura);
}
function movimentaMinhaRaquete(){
  if(keyIsDown(UP_ARROW)){
    yRaquete -= 10;
  }
  if(keyIsDown(DOWN_ARROW)){
    yRaquete += 10;
  }
}

function verificaColisaoRaquete(x,y){
  colidiu = 
  collideRectCircle(x, y, raqueteComprimento,raqueteAltura, xBolinha, yBolinha, raio);

  if(colidiu){

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

}

function movimentaRaqueteOponente(){ // joga com o computador
    velocidadeYOponente = yBolinha - yRaqueteOponente - raqueteComprimento / 2 - 30;
  yRaqueteOponente += velocidadeYOponente +chanceDeErrar;
  calculaChanceDeErrar();
}

function jogaComOponente(){ // joga com outra pessoa pelas teclas w e s
    if(keyIsDown(87)){
    yRaqueteOponente -= 10;
  }
  if(keyIsDown(83)){
    yRaqueteOponente += 10;
  }
}


function incluiPlacar(){
  stroke(255);
  textAlign(CENTER);
  textSize (16);
  fill(color(255,140,0));// cor laranja
  rect(150,10,40,20);
  fill (255);//cor branca
  text (meusPontos, 170,26);// inclui placar nas coordenadas informadas
  fill(color(255,140,0));
  rect(450,10, 40, 20);
  fill (255);
  text(pontosOponente, 470,26);

}
 function marcaPonto(){
   if(xBolinha > 590){ 
     meusPontos += 1; //soma 1 ponto no meu placar
     ponto.play();
   }
   if(xBolinha < 10){
     pontosOponente += 1;
     ponto.play();
   }
 }

function calculaChanceDeErrar() {
  if (pontosDoOponente >= meusPontos) {
    chanceDeErrar += 1
    if (chanceDeErrar >= 39){
    chanceDeErrar = 40
    }
  } else {
    chanceDeErrar -= 1
    if (chanceDeErrar <= 35){
    chanceDeErrar = 35
    }
  }
}
1 resposta

Boa Janaina Aparecida De Aguiar Batista,

Gostei da solução que você propôs, afinal o resultado é o mesmo porém o código me parece muito mais robusto.

Para que mais pessoas consigam visualizar a sua solução proposta é recomendável com que você venha estar marcando este tópico como solucionado, assim pode estar ajudando ainda mais pessoas :)

Obrigado!!