1
resposta

duvida com o colidiu

// variaveis Bola
let xBola = 300; 
let yBola = 200;
let diametro = 25;
let raio = diametro / 2;

// velocidade Bola
let velocidadeXbola = 6
let velocidadeYbola = 6

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

// variaveis raquete oponente
let xRaqueteOponente = 585
let yRaqueteOponente = 150
let velocidadeYOponente;

let
colidiu = false

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

function draw() {
  background(0);
  mostraBola ();
  movimentaBola ();
  colisaoBola ();
  mostraRaquete (xRaquete,yRaquete);
  movimentaRaquete ();
  colisaoRaquete ();
  mostraRaquete(xRaqueteOponente, yRaqueteOponente);
  movimentaRaqueteOponente ();
  colisaoRaqueteOponente();

  }

  function mostraBola (){
    circle( xBola,yBola,diametro)  }

  function movimentaBola (){
      xBola += velocidadeXbola;
      yBola += velocidadeYbola 
  } 

  function colisaoBola (){
      if (xBola + raio > width ||
     xBola - raio < 0){
    velocidadeXbola *= -1;
  }

  if (yBola + raio > height ||
     yBola - raio < 0) {
    velocidadeYbola *= -1; 
  }
  }  
  function mostraRaquete(x , y){
    rect(x ,y ,raqueteComprimento, raqueteAltura)  }  
  function movimentaRaquete (){
      if (keyIsDown (UP_ARROW)){
      yRaquete -= 10;
}
    if (keyIsDown(DOWN_ARROW)){
      yRaquete += 10;
    } 
  }   

  function colisaoRaquete (){
    colidiu =
    collideRectCircle(xRaquete,yRaquete , raqueteComprimento, raqueteAltura, xBola, yBola, raio);    
    if (colidiu){
      velocidadeXbola *= -1
    } 
  }
  function colisaoRaqueteOponente (){
    if (xBola - raio < xRaquete + raqueteComprimento &&
        yBola - raio < yRaquete + raqueteAltura &&
       yBola + raio > yRaquete)
      velocidadeXbola *= -1
  }
    function movimentaRaqueteOponente (){
      velocidadeYOponente = yBola - yRaqueteOponente - raqueteComprimento / 2 - 30;
      yRaqueteOponente += velocidadeYOponente
    }
ola, estou fazendo os passos da aula porem a raquete do oponente sumiu e aparece erro no "colidiu", se alguem puder me ajudar eu agradeço, desde já agradeço.
1 resposta

Oi, Miguel! TUdo certo?

Em primeiro lugar, certifique-se que você realizou o upload da biblioteca collide e que fez a referência dela no index.html.

Outro ponto é que você precisa declarar a let colidiu = false na mesma linha. Além disso, observei que você construiu duas funções de colisão para o mesmo lado , que é a colisão pro lado do jogador principal. Na function colisaoRaqueteOponente você passou as variáveis de xRaquete e yRaquete, ou seja, ela não vai identificar a raquete do oponente. Provavelmente foi isso que ocasionou o conflito.

Compartilhe o link do seu projeto, pois assim fica mais fácil de identificar o erro e encontrar a solução

Um abraço e bons estudos!