3
respostas

minha raquete oponente some assim q eu chamo a function movimentoRaqueteOponente

//variaveis bolinha
let xBolinha = 300;
let yBolinha = 200;
let diametro = 15;
let raio = diametro / 2;
//variaveis velocidade bolinha
let velocidadeXBolinha = 4;
let velocidadeYBolinha = 6;
//variaveis raquete
let xRaquete = 5;
let yRaquete = 150;
let raqueteComprimento = 5;
let raqueteAltura = 100;
let velocidadeMinhaRaquete = 5;
//variaveis raquete oponente
let xRaqueteOponente = 585;
let yRaqueteOponente = 150;
let velocidadeYOponente;

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

function draw() {
  background(0);
  mostraBolinha();
  movimentoBolinha();
  verificaColisaoBolinha();
  movimentoMinhaRaquete();
  verificaColisaoRaquete();
  mostraRaquete(xRaquete, yRaquete);
  mostraRaquete(xRaqueteOponente, yRaqueteOponente)
  movimentoRaqueteOponente();
}

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

function movimentoBolinha(){
  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 movimentoMinhaRaquete(){
  if(keyIsDown(UP_ARROW)){
    yRaquete -= velocidadeMinhaRaquete;
  }
  if(keyIsDown(DOWN_ARROW)){
    yRaquete += velocidadeMinhaRaquete;
  }
}

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

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

Olá Vittor

Faltou inicializar o valor da "velocidadeYOponente"

Ao tentar calcular, ele acaba recebendo um valor "NaN" = Not a Number, na velocidade, e em seguida, na posição

continua o mesmo erro :/

variaveis bolinha let xBolinha = 300; let yBolinha = 200; let diametro = 15; let raio = diametro / 2; //variaveis velocidade bolinha let velocidadeXBolinha = 4; let velocidadeYBolinha = 6; //variaveis raquete let xRaquete = 5; let yRaquete = 150; let raqueteComprimento = 5; let raqueteAltura = 100; let velocidadeMinhaRaquete = 5; //variaveis raquete oponente let xRaqueteOponente = 585; let yRaqueteOponente = 150; let velocidadeYOponente = 40;

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

function draw() { background(0); mostraBolinha(); movimentoBolinha(); verificaColisaoBolinha(); movimentoMinhaRaquete(); verificaColisaoRaquete(); mostraRaquete(xRaquete, yRaquete); mostraRaquete(xRaqueteOponente, yRaqueteOponente) movimentoRaqueteOponente(); }

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

function movimentoBolinha(){ 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 movimentoMinhaRaquete(){ if(keyIsDown(UP_ARROW)){ yRaquete -= velocidadeMinhaRaquete; } if(keyIsDown(DOWN_ARROW)){ yRaquete += velocidadeMinhaRaquete; } }

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

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

na sua função "movimentoRaqueteOponete" vc está dando/criando um valor para "velocidadeYOponente", porém essa mesma variável está inserida dentro dela mesmo e nisso o p5 n consegue contabilizar tal valor, já que ele continua a n existir.