1
resposta

Não consigo fazer o oponente errar

O meu código é esse:

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

//velocidade da bolinha
let velocidadeXBolinha = 5
let velocidadeYBolinha = 5

//variáveis da Raquete
let xRaquete = 10
let yRaquete = 150
let raqueteComprimento = 10
let raqueteAltura = 90

//variáveis da raquete do oponente
let xRaqueteOponente = 580
let yRaqueteOponente = 150
let velocidadeYOponente ;

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

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

//variável de erro 
let chanceDeErrar = 0

let colidiu = false;

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

//mapa do jogo
function setup() {
  createCanvas(600, 400);
  trilha.loop();
}

function draw() {
  background(0);
  mostraBolinha();
  velocidadeBolinha();
  verificaColisaoBolinha();
  mostraRaquete(xRaquete, yRaquete);
  movimentaRaquete();
//verificaColisaoRaquete();
  colisaoRaqueteBolinha(xRaquete, yRaquete);
  mostraRaquete(xRaqueteOponente, yRaqueteOponente);
movimentaRaqueteOponente();
  //movimentaRaqueteOponente2();
  colisaoRaqueteBolinha(xRaqueteOponente, yRaqueteOponente);
  mostraPlacar();
  marcaPonto();
  calculaChanceDeErrar();
  //preload();
}

 function mostraBolinha(){
     circle (xBolinha, yBolinha, diametro);

 }

function velocidadeBolinha(){
  xBolinha += velocidadeXBolinha;
  yBolinha += velocidadeYBolinha;
}

function verificaColisaoBolinha(){
  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 movimentaRaquete(){
  if (keyIsDown (UP_ARROW)){
    yRaquete -= 10
  }
  if (keyIsDown (DOWN_ARROW)){
    yRaquete += 10
  }
  yRaquete = constrain (yRaquete, 10, 300)
}

function verificaColisaoRaquete(){
  if (xBolinha - raio < xRaquete + raqueteComprimento &&
      yBolinha - raio < yRaquete + raqueteAltura &&
      yBolinha + raio > yRaquete){
    velocidadeXBolinha *= -1
  }
}

function colisaoRaqueteBolinha(x, y){
 colidiu =
  collideRectCircle(x, y, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, diametro)
  if (colidiu){
     velocidadeXBolinha *= -1;
    raquetada.play();
  }
}

function movimentaRaqueteOponente(){
  velocidadeYOponente = yBolinha - yRaqueteOponente - raqueteAltura/2 - 30;
  yRaqueteOponente += velocidadeYOponente + chanceDeErrar;
  yRaqueteOponente = constrain (yRaqueteOponente, 10, 300);
  calculaChanceDeErrar();
}

function movimentaRaqueteOponente2(){
  if (keyIsDown (87)){
    yRaqueteOponente -= 10
  }
  if (keyIsDown (83)){
    yRaqueteOponente += 10
  }
  yRaqueteOponente = constrain (yRaqueteOponente, 10, 300)
}

function mostraPlacar(){
  stroke(255)
  textAlign (CENTER);
  textSize (14)
  fill (0, 0, 205)
  rect (230, 10, 40, 20)
  fill (255)
  text (meusPontos, 250, 25)
  fill (0, 0, 205)
  rect (330, 10, 40, 20);
  fill (255)
  text (pontosDoOponente, 350, 25)
}

function marcaPonto(){
  if (xBolinha - raio < 0){
  pontosDoOponente += 1;
  ponto.play();
  }
  if (xBolinha + raio > width){
  meusPontos += 1;
  ponto.play();
  }
}

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

Já tentei olhar alguns tópicos no fórum, mas não consegui entender o motivo do erro.

1 resposta

Estou com mesmo problema, código idêntico, não era para ter este erro.