Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Oponente nunca erra

Olá, tudo bem? bom, eu vi alguns códigos no fórum, mas nenhum conseguiu resolver o meu problema. O meu oponente nunca erra, fiz alguma alterações, mas ai ele nunca acerta, então decidi enviar aqui para ver se alguém consegue me ajudar.

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

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

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

// variáveis do oponente
let xRaqueteOponente = 585;
let yRaqueteOponente = 150;
let velocidadeYOponente;

//placar do jogo
let meusPontos = 0;
let pontosOponente = 0;

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

//chance de errar do oponete
let chanceDeErrar = 0;

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

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

function draw() {
  background(0);
  mostrabolinha();
  movimentaBolinha();
  verificaColisaoBorda();
  mostraRaquete(xRaquete, yRaquete);
  movimentaMinhaRaquete();
  verificaColisaoRaquete();
  mostraRaquete(xRaqueteOponente, yRaqueteOponente);
  movimentaRaqueteOponente();
  verificaColisaoRaqueteOponente();
  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;
  }
  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 movimentaRaqueteOponente(){
  velocidadeYOponente = yBolinha - raqueteComprimento / 2 - 30 - yRaqueteOponente;
  yRaqueteOponente += velocidadeYOponente + chanceDeErrar
  calculaChanceDeErrar()
}

function verificaColisaoRaquete(){
  if (xBolinha - raio < xRaquete + raqueteComprimento &&  yBolinha - raio < yRaquete + raqueteAltura && yBolinha + raio > yRaquete){
    velocidadeXBolinha *= -1;
    raquetada.play()
  }
}
function verificaColisaoRaqueteOponente(){
  if (xBolinha + raio > xRaqueteOponente &&  yBolinha - raio < yRaqueteOponente + raqueteAltura  && yBolinha + raio > yRaqueteOponente){
    velocidadeXBolinha *= -1;
    raquetada.play()
  }
}

function incluiPlacar(){
  stroke(255)
  textAlign(CENTER)
  textSize(16)
  fill(color(255, 140, 0))
  rect(135, 10, 30, 20)
  rect(435, 10, 30, 20)
  fill(255)
  text(meusPontos, 150, 26)
  text(pontosOponente, 450, 26)
}
function marcaPonto(){
  if(xBolinha > 590){
    meusPontos += 1
    ponto.play()
  }
  if (xBolinha < 10){
    pontosOponente += 1
    ponto.play()
  }
}

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





1 resposta
solução!

Aqui o código não rodou, mas tenta chamar a função calculaChanceDeErrar() na função draw