1
resposta

[Projeto] raquete do oponente nao movimenta


//VARIAVEIS DA BOLINHA
let xbolinha = 300;
let ybolinha = 200;
let diametro = 20;
let raio = diametro / 2;

//MOVIMENTO DA BOLINHA
let xmovimento = 6;
let ymovimento = 6;

//VARIAVEIS DA RAQUETE
let xraquete  =  5;
let yraquete = 150;
let rComprimento = 10;
let rAltura  = 80;

//VARIAVES OPONENTE
let xRaqueteOponente = 585;
let yRaqueteOponente = 150;
let velocidadeYOponente;

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

//FUNÇAO  DA BOLINHA
function draw() {
  background(0);
  mostrarBolinha();
  movimentoBolinha();
  rebaterBolinha();
  mostraRaquete(xraquete, yraquete);
  movimentaRaquete();
  colisaoRaquete();
  mostraRaquete(xRaqueteOponente, yRaqueteOponente);

function mostrarBolinha(){
  circle(xbolinha, ybolinha, diametro);
  }  
function movimentoBolinha(){
  xbolinha += xmovimento;
  ybolinha += ymovimento;
  }
function rebaterBolinha(){
  if(xbolinha + raio > width || xbolinha - raio  < 0){
     xmovimento *= -1;
     }
  if(ybolinha + raio > height || ybolinha - raio  < 0){
     ymovimento *= -1;
     }
  }

//FUNÇAO DA  RAQUETE

function mostraRaquete(x,y){
  rect(x, y, rComprimento, rAltura)
  }    

function movimentaRaquete(){
  if (keyIsDown(UP_ARROW)) {
    yraquete -= 10;
  }
  if (keyIsDown(DOWN_ARROW)) {
    yraquete += 10;
  }
}  

function colisaoRaquete(){
  if(xbolinha - raio < xraquete + rComprimento && ybolinha - raio < yraquete + rAltura && ybolinha + raio > yraquete){
     xmovimento *= -1;
     }
} 
function movimentaRaqueteOponente() {
    velocidadeYOponente = ybolinha - yRaqueteOponente - rComprimento / 2 - 30;
    yRaqueteOponente += velocidadeYOponente
}

}
1 resposta

Olá, Ricardo! Como você está?

Chequei seu código e ele está correto na maior parte, mas você se esqueceu de declarar a função de movimento da raquete do oponente! Está aqui a função (que, inclusive, foi criada por você!):

function movimentaRaqueteOponente()

Ela será chamada dentro da function draw(), para fazermos a criação dela no editor.

Captura de tela das funções da bolinha; "função da bolinha" está comentada com duas barras e após esse comentário estão as outras funções, dentro da função draw

Você escreveu certinho no final do código, mas apenas esqueceu de nomear para o editor desenhá-la! :)

Portanto, o código ficará desta forma:

//VARIAVEIS DA BOLINHA
let xbolinha = 300;
let ybolinha = 200;
let diametro = 20;
let raio = diametro / 2;

//MOVIMENTO DA BOLINHA
let xmovimento = 6;
let ymovimento = 6;

//VARIAVEIS DA RAQUETE
let xraquete  =  5;
let yraquete = 150;
let rComprimento = 10;
let rAltura  = 80;

//VARIAVES OPONENTE
let xRaqueteOponente = 585;
let yRaqueteOponente = 150;
let velocidadeYOponente;

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

//FUNÇAO  DA BOLINHA
function draw() {
  background(0);
  mostrarBolinha();
  movimentoBolinha();
  rebaterBolinha();
  mostraRaquete(xraquete, yraquete);
  movimentaRaquete();
  colisaoRaquete();
  mostraRaquete(xRaqueteOponente, yRaqueteOponente);
  movimentaRaqueteOponente();

function mostrarBolinha(){
  circle(xbolinha, ybolinha, diametro);
  }  
function movimentoBolinha(){
  xbolinha += xmovimento;
  ybolinha += ymovimento;
  }
function rebaterBolinha(){
  if(xbolinha + raio > width || xbolinha - raio  < 0){
     xmovimento *= -1;
     }
  if(ybolinha + raio > height || ybolinha - raio  < 0){
     ymovimento *= -1;
     }
  }

//FUNÇAO DA  RAQUETE

function mostraRaquete(x,y){
  rect(x, y, rComprimento, rAltura)
  }    

function movimentaRaquete(){
  if (keyIsDown(UP_ARROW)) {
    yraquete -= 10;
  }
  if (keyIsDown(DOWN_ARROW)) {
    yraquete += 10;
  }
}  

function colisaoRaquete(){
  if(xbolinha - raio < xraquete + rComprimento && ybolinha - raio < yraquete + rAltura && ybolinha + raio > yraquete){
     xmovimento *= -1;
     }
} 
function movimentaRaqueteOponente() {
    velocidadeYOponente = ybolinha - yRaqueteOponente - rComprimento / 2 - 30;
    yRaqueteOponente += velocidadeYOponente
}

}

E, além disso, uma coisa que pode te interessar: nosso artigo sobre a linguagem de Markdown. É a linguagem que utilizamos aqui no fórum para mostrar os códigos. Tomei a liberdade para alterar isso em sua mensagem inicial. Clique aqui para acessar.

Espero que sua dúvida tenha sido sanada. Abraços!

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