1
resposta

Erro ao criar Function

Boa noite,

Poderiam me ajudar com esse código? Estou tentando criar a função para movimentar a raquete do oponente, porém o Java acusa erro e não faço ideia do que seja.

Código:

//variaveis da bolinha
let xBolinha = 300;
let yBolinha = 200;
let diametro = 15;
let raio = diametro / 2;

//velocidade da bolinha
let velocidadexBolinha = 6;
let velocidadeyBolinha = 6;

//variaveis da raquete
let xRaquete = 5;
let yRaquete = 150;
let raqueteComprimento = 10;
let raqueteAltura = 90;

//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);
  mostraRaquete(xRaqueteOponente,yRaqueteOponente);
  movimentaMinhaRaquete();
  movimentaRaqueteOponente();
  //verificaColisaoRaquete();
  colisaoMinhaRaqueteBiblioteca();



}

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 + raqueteAltura ){

    velocidadexBolinha *= -1;
  }

}

function colisaoMinhaRaqueteBiblioteca(){

  colidiu = collideRectCircle(xRaquete, yRaquete, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, raio);

  if (colidiu){

    velocidadexBolinha *= -1;

  }  

function movimentaRaqueteOponente(){

    velocidadeYOponente = yBolinha - yRaqueteOponente - raqueteComprimento / 2 - 30;

    yRaqueteOponente += velocidadeYOponente
  }

}

Erro:

p5.js says: [sketch.js, line 36] "movimentaRaqueteOponente" is not defined in the current scope. If you have defined it in your code, you should check its scope, spelling, and letter-casing (JavaScript is case-sensitive).

1 resposta

Olá Gustavo, tudo bem ?

Acredito que a possível causa do erro seja por conta de você só ter fechado as chaves do if na função colisaoMinhaRaqueteBiblioteca. Ou seja, a função movimentaRaqueteOponente estaria "dentro" da função colisaoMinhaRaqueteBiblioteca, para resolver seu problema, basta fechar uma chave } antes de declarar a função movimentaRaqueteOponente. Também remover uma chave fechando na última função, que ficou sobrando.

O código final ficaria parecido com esse:

function colisaoMinhaRaqueteBiblioteca(){

  colidiu = collideRectCircle(xRaquete, yRaquete, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, raio);

  if (colidiu){

    velocidadexBolinha *= -1;

  }  

}

function movimentaRaqueteOponente(){

    velocidadeYOponente = yBolinha - yRaqueteOponente - raqueteComprimento / 2 - 30;

    yRaqueteOponente += velocidadeYOponente


}

Só colei a parte inferior onde o erro se encontra, se restar qualquer dúvida, estarei à disposição :)

Forte abraço e bons estudos !

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