2
respostas

movimentaRaqueteoponente não defininido porém nas linhas essa função está definida

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

//velocidade da Bolinha let velocidadexBolinha = 8 let velocidadeyBolinha = 8

//variaveis da raquete let xRaquete = 5 let yRaquete = 150 let comprimento =10 let altura = 90 //variaveis do oponente let xRaqueteoponente = 581 let yRaqueteoponente = 150 let velocidadeyOponente;

let colidiu = false

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

function draw() { background(0); mostraBolinha() movimentaBolinha() colisaoBolinha() mostraRaquete (xRaquete, yRaquete) movimentoRaquete() colisaoRaquete() colisaoBliblioteca() mostraRaquete (xRaqueteoponente, yRaqueteoponente ) movimentaRaqueteoponente() colisaoOponentebliblioteca() }

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

function movimentaBolinha() { xBolinha += velocidadexBolinha yBolinha += velocidadeyBolinha}

function colisaoBolinha() {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, comprimento, altura)}

function movimentoRaquete(){ if (keyIsDown (UP_ARROW)) yRaquete -= 10

if (keyIsDown (DOWN_ARROW)) yRaquete += 10 }

function colisaoRaquete(){ if (xBolinha - raio < xRaquete + comprimento && yBolinha - raio < yRaquete + altura && yBolinha + raio > yRaquete ) velocidadexBolinha *= -1 }

function colisaoBliblioteca(){ colidiu = collideRectCircle(xRaquete,yRaquete, comprimento, altura, xBolinha, yBolinha, raio); if (colidiu){ velocidadexBolinha *= -1; } function colisaoOponentebliblioteca(){ colidiu = collideRectCircle(xRaqueteoponente,yRaqueteoponente, comprimento, altura, xBolinha, yBolinha, raio); if (colidiu){ velocidadexBolinha *= -1; }

} function movimentaRaqueteoponente (){ velocidadeyOponente = yBolinha - yRaqueteoponente - comprimento / 2 -30 yRaqueteoponente += velocidadeyOponente }

}

2 respostas

Oi, Caio! Tudo bem?

Para que a gente consiga resolver o nosso problema e executar o nosso código precisamos fazer algumas alteraçõezinhas nele.

Inicialmente, deixo como recomendação o uso de ponto e vírgula ao final de cada comando, a fim de evitar possíveis problemas e por ser considerado uma boa prática de programação.

Após isso, devemos notar que a função colisaoBliblioteca() se encontra aberta. Para fechá-la basta adicionarmos ao seu final uma chave "}", deixando-a da seguinte forma:

function colisaoBliblioteca(){
  colidiu = collideRectCircle(xRaquete,yRaquete, comprimento, altura, xBolinha, yBolinha, raio); 
  if (colidiu){ 
    velocidadexBolinha *= -1;
  }
}

Somado a isso, podemos também notar que há uma chave a mais ao final da função movimentaRaqueteoponente(). Devemos, então, apenas retirar a ultima chave presente na função, deixando-a da seguinte maneira:

 function movimentaRaqueteoponente (){
    velocidadeyOponente = yBolinha - yRaqueteoponente - comprimento / 2 -30;
    yRaqueteoponente += velocidadeyOponente;
    }

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 ✓

Olá, não sei se aplica ao seu caso, mas eu estava sofrendo com o mesmo problema e consegui resolver depois de perceber que minha função raquete estava dentro das {} de outra função e não fora, isso estava ocasionando que o p5 não conseguisse visualizar ela como uma função separada, espero que te ajude de alguma forma.