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

Erro no código!

Quem pode me ajuda? Esta dando erro nesse "movimentaRaqueteOponente();", ja verifiquei não acho o erro!

//variaveis da bolinha

let xBolinha = 300;
let yBolinha = 200;
let diametro = 20 ;
let raio = diametro /2;

//variaveis da velocidade da bolinha
let velocidadeXBolinha = -2;
let velocidadeYBolinha = 2;
let raqueteComprimento = 10;
let raqueteAltura = 90;

//variaveis da raquete

let xRaquete = 5;
let yRaquete = 150;

//variaveis 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);
  mostraRaqueteOponente(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(){ 
  rect(xRaquete, yRaquete, raqueteComprimento, raqueteAltura)
}

function mostraRaqueteOponente(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
}
}
2 respostas
solução!

Oi, Fábio! Tudo bem?

Podemos notar que na função verificaColisaoRaquete() falta uma chave "}" para fechar a função. Também podemos notar que na função movimentaRaqueteOponente() há uma chave a mais no final, que podemos excluir. Dessa forma nossas duas funções devem ficar da seguinte maneira:

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
} 

Somado a isso, devemos ficar atentos na declaração da nossa função VerificaColisaoRaquete(xRaquete, yRaquete) na função draw, pois a função que vamos utilizar inicia com letra maiuscula e está sendo declarada com letra minuscula. Dessa forma, para haver a colisão entre a nossa raquete e a bolinha devemos trocar a declaração verificaColisaoRaquete(xRaquete, yRaquete) por VerificaColisaoRaquete(xRaquete, yRaquete).

Espero ter ajudado! Qualquer dúvida basta comunicar!

Um forte abraço e bons estudos!

Caso este post tenha te ajudado, por favor, marcar como solucionado ✓

Obrigado Sarah !!