1
resposta

Oponente não erra independente dos número que eu coloque.

//Bolinha Tamanho
let = xBolinha = 300
let = yBolinha = 200
let = diametro = 20
let = raio = diametro / 2
//Bolinha Velocidade
let = velocidadeXBolinha = 7
let = velocidadeYBolinha = 7
//Raquete Tamanho
let = xRaquete = 5
let = yRaquete = 150
let = larguraRaquete = 20
let = alturaRaquete = 110
//Raquete Oponente
let = xRaqueteOponente = 575
let = yRaqueteOponente = 150
let = velocidadeYOponente =
//Sons
let = raquetada =
let = ponto =
let = trilha =
//Chanche de errar
let = chanceDeErrar = 0
//Biblioteca
let = colidiu = false

//Placar
let = pontosMeus = 0;
let = pontosOponente = 0;

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

function draw() {
  background(0);
  bolinha();
  movimentosBolinha();
  colisaoBorda();
  tamanhoRaquete(xRaquete, yRaquete);
  tamanhoRaquete(xRaqueteOponente, yRaqueteOponente);
  movimentosRaquete();
  //colisaoRaquete();
  movimentarRaqueteOponente();
  colisaoBiblioteca(xRaquete, yRaquete);
  colisaoBiblioteca(xRaqueteOponente, yRaqueteOponente);
  mostrarPlacar();
  marcarPonto();
  //preload();
  calculaChanceDeErrar();
  //correçaoDeBugs();
}

function bolinha(){
circle(xBolinha, yBolinha, diametro)
}

function movimentosBolinha(){
  xBolinha += velocidadeXBolinha
  yBolinha += velocidadeYBolinha
}

function colisaoBorda(){
if (xBolinha + raio > width ||
    xBolinha - raio < 0){
    velocidadeXBolinha *= -1
}
if (yBolinha + raio > height ||
   yBolinha - raio< 0){
   velocidadeYBolinha *= -1
   }
}

function tamanhoRaquete(x, y){
  rect(x, y, larguraRaquete, alturaRaquete)
}
function movimentosRaquete(){
  if (keyIsDown(UP_ARROW)){
  yRaquete -= 10
  }
  if (keyIsDown(DOWN_ARROW)){
  yRaquete += 10
  }
}

function movimentarRaqueteOponente(){
  velocidadeYOponente = yBolinha - yRaqueteOponente - alturaRaquete ;
  yRaqueteOponente += velocidadeYOponente + chanceDeErrar
  calculaChanceDeErrar();

}

function colisaoRaquete(){
if (xBolinha - raio < xRaquete + larguraRaquete
   && yBolinha - raio < yRaquete + alturaRaquete
   && yBolinha + raio > yRaquete - alturaRaquete
   ){
  velocidadeXBolinha *= -1
  raquetada.play();
}
}
function colisaoBiblioteca(x, y){
  colidiu = collideRectCircle(x, y, larguraRaquete, alturaRaquete, xBolinha, yBolinha, diametro);
  if (colidiu){
  velocidadeXBolinha *= -1
  raquetada.play();
  }
}

function correçaoDeBugs(){
if (yRaquete > 0 &&
    yRaquete + alturaRaquete < 400){
if (keyIsDown(UP_ARROW)){
  yRaquete -= 10
}
if (keyIsDown(DOWN_ARROW)){
yRaquete += 10
}
if (yRaquete < 0){
  yRaquete += 1
}
if (yRaquete + alturaRaquete > 400){
  yRaquete -= 1
}
}
}
function correçaoDeBugs(){
  if(yRaquete > 0 &&
    yRaquete + alturaRaquete < 400) {
    if (keyIsDown(UP_ARROW)) {
      yRaquete -= 10;    
    };
    if (keyIsDown(DOWN_ARROW)) {
      yRaquete += 10;    
    };
  }
  if(yRaquete <= 0) {
    yRaquete += 1; }
  if(yRaquete + alturaRaquete >= 400) {
    yRaquete -= 1; }  
}

function mostrarPlacar(){
  textAlign(CENTER);
  textSize(16);
  fill(color(0, 128, 0))
  rect(430, 10, 40, 20);
  fill(255)
  text(pontosOponente, 450, 26)
  fill(color(0, 128, 0))
  rect(129, 10, 40, 20);
  fill(255)
  text(pontosMeus, 150, 26)
}
function marcarPonto(){
if (xBolinha + raio > 600){
  pontosMeus += 1
  ponto.play();
}
if (xBolinha - raio < 0){
  pontosOponente += 1
  ponto.play();
}
}
function preload(){
  trilha = loadSound("trilha.mp3")
  raquetada = loadSound("raquetada.mp3")
  ponto = loadSound("ponto.mp3")
}

function calculaChanceDeErrar() {
  if (pontosOponente >= pontosMeus) {
    chanceDeErrar += 50
  }
    if (chanceDeErrar >= 50){
    chanceDeErrar = 100
    }
   else {
    chanceDeErrar -= 1
    if (chanceDeErrar <= 100){
    chanceDeErrar = 100
    }
}
}
1 resposta

Fala, Eduardo! Tudo bem contigo?

Desculpe a demora em dar um retorno!

Dê uma olhada nesse projeto que utiliza a função que faz a raquete do oponente errar!

Acredito que vá te ajudar no seu desenvolvimento

Caso não consiga, nos dê um retorno

Um abraço e bons estudos!