Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Raquete do Oponente não aparece

//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;

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

//variáveis do oponeten 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(); mostraRaquete(xRaqueteOponente, yRaqueteOponente); movimentaRaqueteOponente(); }

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 movimentaRaqueteOponente(){ velociadeYOponente = yBolinha - yRaqueteOponente - raqueteComprimento / 2 - 30; yRaqueteOponente += velocidadeYOponente }

alguém pode me ajudar a identificar o erro?

2 respostas
solução!

Você tem que alterar o nome dessa função mostraRaquete(xRaqueteOponente, yRaqueteOponente); Para MostraRaqueteOponente(xRaqueteOponente, yRaqueteOponente) E em baixo dessa função: function mostraRaquete(x,y){ rect(x, y, raqueteComprimento, raqueteAltura); } Chamar a função mostraRaqueteOponente.

Olá Robert, seu código está com problema nas funções que mostram a raquete do oponente, e também movimenta a raquete do oponente. Tens também, que concluir a colisão e continuar. Bons estudos!!

//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;

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

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

let colidiu = false;

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

function draw() {
  background(0); 
  mostraBolinha();
  movimentaBolinha(); 
  verificaColisaoBorda();
  mostraRaquete();
  movimentaMinhaRaquete();
  verificaColisaoRaquete();
  mostraRaqueteOponente();   
  movimentaRaqueteOponente();


}


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(){
  rect(xRaquete, yRaquete, raqueteComprimento, raqueteAltura);
}
function mostraRaqueteOponente() {
    rect(xRaqueteOponente, yRaqueteOponente, 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 movimentaRaqueteOponente() {
    velocidadeYOponente = yBolinha - yRaqueteOponente - raqueteComprimento / 2 - 30;
    yRaqueteOponente += velocidadeYOponente
}