1
resposta

[Dúvida] A raquete do oponente parou de se movimentar

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

//velocidade da bolinha
let velocidadexBolinha = 6;
let velocidadeyBolinha = 6;
let raqueteComprimento = 10;
let raqueteAltura = 90;

//variáveis da raquete
let xRaquete = 5;
let yRaquete = 150;

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

let colidiu = false;

function setup() {
  createCanvas(600, 400);
}

function draw() {
  background(0);
  mostraBolinha();
  movimentaBolinha();
  verificaColisaoBorda();
  mostraRaquete(xRaquete, yRaquete);
  movimentaMinhaRaquete();
  //verificaColisaoRaquete();
  verificaColisaoRaquete(xRaquete, yRaquete);
  mostraRaquete(xRaqueteOponente, yRaqueteOponente);
  verificaColisaoRaquete(xRaqueteOponente, yRaqueteOponente);
}

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 verificaColisaoRaquete(){
  if(xBolinha - raio < xRaquete + raqueteComprimento && yBolinha - raio < yRaquete + raqueteAltura && yBolinha + raio > yRaquete){
    velocidadexBolinha *= -1;
  }
}

function verificaColisaoRaquete(x,y){
  colidiu =
  collideRectCircle(x, y, raqueteComprimento, raqueteAltura,xBolinha,yBolinha, raio);
  if (colidiu){
    velocidadexBolinha *= -1;
  }
}

function movimentaRaqueteOponente(){
  velocidadeYOponente = yBolinha - yRaqueteOponente - raqueteComprimento /2 - 30;
  yRaqueteOponente += velocidadeYOponente  }
1 resposta

Olá, Maicky, tudo bem?

Editei o seu post, e coloquei o trecho de código utilizando a opção </> do fórum, para ajudar na compreensão do código por possíveis alunos que tenham a mesma dúvida. Nesse vídeo mostra algumas funcionalidades do fórum que você pode explorar e turbinar seus estudos:

Analisei o seu código, e a função movimentaRaqueteOponente, está correta, igual ao do professor. Porém, ela não chega a ser executada, pois você não chama na função draw. Portanto, a raquete oponente não se movimenta.

Segue o código com as devidas alterações:

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

//velocidade da bolinha
let velocidadexBolinha = 6;
let velocidadeyBolinha = 6;
let raqueteComprimento = 10;
let raqueteAltura = 90;

//variáveis da raquete
let xRaquete = 5;
let yRaquete = 150;

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

let colidiu = false;

function setup() {
  createCanvas(600, 400);
}

function draw() {
  background(0);
  mostraBolinha();
  movimentaBolinha();
  verificaColisaoBorda();
  mostraRaquete(xRaquete, yRaquete);
  movimentaMinhaRaquete();
  movimentaRaqueteOponente()
  //verificaColisaoRaquete();
  verificaColisaoRaquete(xRaquete, yRaquete);
  mostraRaquete(xRaqueteOponente, yRaqueteOponente);
  verificaColisaoRaquete(xRaqueteOponente, yRaqueteOponente);
}

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 verificaColisaoRaquete(){
  if(xBolinha - raio < xRaquete + raqueteComprimento && yBolinha - raio < yRaquete + raqueteAltura && yBolinha + raio > yRaquete){
    velocidadexBolinha *= -1;
  }
}

function verificaColisaoRaquete(x,y){
  colidiu =
  collideRectCircle(x, y, raqueteComprimento, raqueteAltura,xBolinha,yBolinha, raio);
  if (colidiu){
    velocidadexBolinha *= -1;
  }
}

function movimentaRaqueteOponente(){
  velocidadeYOponente = yBolinha - yRaqueteOponente - raqueteComprimento /2 - 30;
  yRaqueteOponente += velocidadeYOponente  }

Espero ter ajudá-lo.

Reforço que estou à disposição para tirar dúvidas.

Abraços,

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