Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

bolinha ultrapassando a raquete

eu já verifiquei o código algumas vezes e não consegui identificar o meu erro ainda, mas a bolinha simplesmente não está mais ricocheteando na raquete, ela ultrapassa :/

https://editor.p5js.org/moonbit/sketches/c6qfHYsUt

2 respostas
solução!

Opa Ryan, tudo certo?

Aparentemente há duas funções de colisão sendo definidas para a raquete do jogador, causando conflito entre elas. Se por exemplo, comentarmos a primeira função e apenas usarmos a função da biblioteca, nosso código funcionará corretamente:

function draw() {
  background(0);
  mostrabolinha();
  movimentabolinha();
  colisaobolinha();
  mostraraquete(xRaquete, yRaquete);
  movimentaraquete();
  //colisaoraquete(xRaquete, yRaquete);
  mostraraquete(xRaqueteoponente, yRaqueteoponente);
  movimentaraqueteoponente();
  colisaoraquetebiblioteca(xRaquete, yRaquete);
  colisaoraquetebiblioteca(xRaqueteoponente, yRaqueteoponente);
  mostraplacar();
  marcarpontos();
  
}

Se precisar de ajuda ou tiver alguma dúvida, estou à disposição, conte comigo!

Tenha um bom dia e bons estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓

Ola, o problema é que tem duas funções de verificaçao de colisao na raquete. Uma sem o uso da biblioteca p5.collide2d.js e outra usando a biblioteca.

Como esta o codigo:


function draw() {
  background(0);
  mostrabolinha();
  movimentabolinha();
  colisaobolinha();
  mostraraquete(xRaquete, yRaquete);
  movimentaraquete();
  colisaoraquete(xRaquete, yRaquete);
  mostraraquete(xRaqueteoponente, yRaqueteoponente);
  movimentaraqueteoponente();
  colisaoraquetebiblioteca(xRaquete, yRaquete);
  colisaoraquetebiblioteca(xRaqueteoponente, yRaqueteoponente);
  mostraplacar();
  marcarpontos();
  
}

Deixa comentado como abaixo que vai funcionar.


function draw() {
  background(0);
  mostrabolinha();
  movimentabolinha();
  colisaobolinha();
  mostraraquete(xRaquete, yRaquete);
  movimentaraquete();
 // colisaoraquete(xRaquete, yRaquete);
  mostraraquete(xRaqueteoponente, yRaqueteoponente);
  movimentaraqueteoponente();
  colisaoraquetebiblioteca(xRaquete, yRaquete);
  colisaoraquetebiblioteca(xRaqueteoponente, yRaqueteoponente);
  mostraplacar();
  marcarpontos();
  
}

Tem que usar um ou outro, comenta um e faz o teste, dai descomenta e comenta o outro. Os dois funcionam, mas somento pode usar um deles.

Caso tenha te ajudado marque como resolvido fazendo favor.