5
respostas

Após importar a biblioteca bmoren/p5.collide2D a colisão para de funcionar com a nova função

Após inserir a Biblioteca bmoren/p5.collide2D, e proceder exatamente como a vídeo aula; incluindo a variável , função e referenciamento no index, tudo conforme a aula , verifiquei que a colisão não acontecia utilizando apenas a função "colisaoMinhaRaqueteBiblioteca();" Verifiquei que no vídeo a bola também não colide e passou despercebido pelo professor, tenho o print da tela em 10:40 , com o vídeo sendo reproduzido a 0,7x de velocidade . Acredito que seja devido a velocidade em que a bolinha estava quando ele testou . Já perceberam isso e fizeram a correção ?

5 respostas

Fala ai Souza, tudo bem? Dá algum erro no console do navegador? Consegue me mandar o editor web do seu projeto? Assim fica mais fácil para eu simular o problema e analisá-lo com mais calma por aqui.

Fico no aguardo.

Olá Matheus, não dá nenhuma mensagem de erro no navegador.

https://editor.p5js.org/souzamed/sketches/NozI-0PNI

Segue o link, espero que consiga acessá-lo

Fala Souza, fiz os testes com seu projeto, aqui funcionou corretamente.

Qual seria essa colisão que você está dizendo? Me passa os detalhes certinho para eu conseguir simular o problema por aqui.

Fico no aguardo.

Boa noite, eu estou com o mesmo problema, fiz tudo como está no vídeo, mas de fato o raio da bolinha ultrapassa a raquete. Segue o código (estou na AULA 03 > Criando minha raquete no jogo > 04 Importando outra biblioteca

//variáveis bolinha
let xBolinha = 300;
let yBolinha = 200;
let diametro = 40;
let raio = diametro / 2;

//variáveis mov bolinha
let velocidadeXBolinha = 2;
let velocidadeYBolinha = 2;

//variáveis raquete
let xRaquete = 2;
let yRaquete = 150;
let wRaquete = 10;
let hRaquete = 90;

let colidiu = false;

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

function draw() {
  background(0);
  desenhaBolinha();
  movimentaBolinha();
  colisaoBolinha();
  desenhaRaquete();
  movimentaRaquete();
  //colisaoRaqueteBolinha();
  colisaoRaqueteBolinhaBiblioteca();
}

function desenhaBolinha() {
  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 desenhaRaquete() {
  rect(xRaquete, yRaquete, wRaquete, hRaquete);
}

function movimentaRaquete() {
  if (keyIsDown(UP_ARROW)) {
    yRaquete += -10;
  }
  if (keyIsDown(DOWN_ARROW)) {
    yRaquete += 10;
  }
}

function colisaoRaqueteBolinha() {
  if (xBolinha - raio < xRaquete + wRaquete 
     && yBolinha - raio < yRaquete + hRaquete
     && yBolinha + raio > yRaquete) {
  velocidadeXBolinha *= -1;
  }
}

function colisaoRaqueteBolinhaBiblioteca() {
  collideRectCircle(xRaquete,yRaquete,wRaquete,hRaquete,xBolinha,yBolinha,diametro);
  if (colidiu) {
  velocidadeXBolinha *= -1;
  }
}

Fala Israel, tudo bem? Cria uma dúvida nova, dai eu te ajudo por lá.

Compartilha o link do projeto na dúvida, dai eu consigo simular o problema por aqui e analisá-lo com mais calma.

Abraços e bons estudos.