1
resposta

[Bug] A raquete do inimigo parou de se mexer :/

//Variáveis da bolinha
let xBolinha = 300;
let yBolinha = 200;
let diametro = 18;
let raio = diametro / 2;

//Velocidade bolinha
let velocidadeXBolinha = 4;
let velocidadeYBolinha = 6;

//Variáveis da Raquete 1
let xRaquete = 5;
let yRaquete = 150;
let raqueteComprimento = 10;
let raqueteAltura = 90; 

//Variáveis do oponente
let xRaqueteOponente= 585;
let yRaqueteOponente= 150;
let velocidadeYOponente;
let chanceDeErrar = 0

let colidiu = false 

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

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

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();
  andabolinha();
  verificacolisaoborda();
  mostraRaquete(xRaquete, yRaquete);
  movimentaMinharaquete();
//VerificaColisaoRaquete
  verificaColisaoRaquete(xRaquete, yRaquete);
  mostraRaquete(xRaqueteOponente, yRaqueteOponente);
  //movimentaRaqueteOponente()
  verificaColisaoRaquete(xRaqueteOponente, yRaqueteOponente)
  constrain(notaLogicaDeProgramacao, 0, 310); 
  incluiPlacar();
  marcaPonto();
  calculaChanceDeErrar();
  bolinhaNaoFicaPresa();
  
}


function mostrabolinha(){
  circle(xBolinha, yBolinha, diametro);
}

function andabolinha() {
  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;
  }
  
  yRaquete = constrain(yRaquete, 0, 310);
  
}


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

function movimentaRaqueteOponente(){
  velocidadeYOponente = yBolinha - yRaqueteOponente - raqueteComprimento / 2 - 30
  yRaqueteOponente += velocidadeYOponente + chanceDeErrar
   calculaChanceDeErrar()
  

  
  yRaqueteOponente = constrain(yRaqueteOponente, 0, 310);
}

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


function bolinhaNaoFicaPresa(){
    if (xBolinha - raio < 0){
    XBolinha = 23
    }
}

1 resposta

Oi, Caique! Como vai?

Sinto muito pela sua situação.

Repare que a linha que executa a função que movimenta a raquete do oponente está comentada (//movimentaRaqueteOponente()). Para fazer com que essa função seja executada você deve tirar as duas barras no início da linha.

Isso deve resolver o seu problema, caso isso não resolva, poderia compartilhar aqui o link para o seu projeto por gentileza para que eu possa te ajudar da melhor forma?

Fico á disposição. Até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software