1
resposta

Minha raquete travou e só a do oponente mexe

1 resposta

Oi oi, Pedro! Como você está?

Verifiquei seu código e observei que você colocou a função para o movimento do oponente e do jogador com o mesmo nome, e provavelmente foi isso que gerou o conflito. Olha só

function draw() {
  background(0)
  mostraBolinha();
  movimentaBolinha();
  verificaColisao();
  mostraRaquete(xRaquete, yRaquete);
  movimentaRaquete(); //aqui a função
  colisaoRaqueteOponenteBiblioteca(xRaquete, yRaquete);
  mostraRaquete(XRaqueteOponente, YRaqueteOponente);
  colisaoRaqueteOponenteBiblioteca(XRaqueteOponente, YRaqueteOponente);

}

E aqui as funções de movimentação das raquetes:

function movimentaRaquete() { //mesmo nome

  if(keyIsDown(UP_ARROW)) {

    yRaquete -= 10;
  }

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

}

A outra função também possui o mesmo nome:

function movimentaRaquete(){
  velocidadeYOponente = yBolinha - YRaqueteOponente - raqueteComprimento / 2 - 50;
  YRaqueteOponente += velocidadeYOponente
}

As duas functions tem o mesmo nome, para resolver o problema basta modificar o nome de uma das funções, olha só:

draw()

function draw() {
  background(0)
  mostraBolinha();
  movimentaBolinha();
  verificaColisao();
  mostraRaquete(xRaquete, yRaquete);
  movimentaRaquete();
  movimentaRaqueteOponente();
  colisaoRaqueteOponenteBiblioteca(xRaquete, yRaquete);
  mostraRaquete(XRaqueteOponente, YRaqueteOponente);
  colisaoRaqueteOponenteBiblioteca(XRaqueteOponente, YRaqueteOponente);

}

function movimentaRaquete()

function movimentaRaquete() {

  if(keyIsDown(UP_ARROW)) {

    yRaquete -= 10;
  }

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

}

function movimentaRaqueteOponente()

function movimentaRaqueteOponente(){
  velocidadeYOponente = yBolinha - YRaqueteOponente - raqueteComprimento / 2 - 50;
  YRaqueteOponente += velocidadeYOponente
}

Agora o jogo funciona direitinho e sem conflitos, espero ter ajudado!

Um abraço e bons estudos!