Após mudar as cores do placar e diminuir o tamanho da bolinha dei play e a bolinha fica fazendo zigue-zague no centro da tela, revi todos os códigos e parece estar tudo certo.
Após mudar as cores do placar e diminuir o tamanho da bolinha dei play e a bolinha fica fazendo zigue-zague no centro da tela, revi todos os códigos e parece estar tudo certo.
Olá, Bruno! Tudo bom?
O erro ocorreu porque você chamou duas vezes a function verificaColisaoRaquete(). Além disso, sugiro que você diferencie as funções que utilizam a biblioteca para evitar conflitos no código.
Para resolver o problema inicial, basta comentar a primeira verificaColisaoRaquete() na draw(), pois assim ela não será chamada pelo p5.js
function draw() {
background(0);
mostraBolinha();
movimentaBolinha();
verificaColisaoBorda();
mostraRaquete(xRaquete, yRaquete);
movimentaMinhaRaquete();
//verificaColisaoRaquete(); se você comentar bem aqui, o código funciona normalmente
verificaColisaoRaquete(xRaquete,yRaquete);
mostraRaquete(xRaqueteOponente, yRaqueteOponente);
movimentaRaqueteOponente ();
verificaColisaoRaquete (xRaqueteOponente, yRaqueteOponente);
incluiPlacar ();
marcaPonto ();
}
Espero que tenha ajudado!
Um abraço e bons estudos!
Oi, Camila. Desculpa, ainda não entendi.
https://editor.p5js.org/everyline/full/FHJuSNMmW
https://editor.p5js.org/everyline/sketches/FHJuSNMmW
Inclusive acho que ocorreu algum erro relacionado ao som. Agradeço pela ajuda!
Oi, Bruno!
Você deixou duas funções com o mesmo nome sendo chamadas na draw(). O p5.js vai ler todos eles e tentar rodá-los, e é por isso que o erro acontece.
Funciona como se você estivesse em uma sala com mais duas pessoas chamadas bruno, se alguém gritar da porta "-Bruno, vem aqui agora!", todos os brunos irão olhar e vão se dirigir até a porta, correto?
Então como podemos diferenciar os Brunos? Uma sugestão é pelo sobrenome, se alguém chamar "Bruno Oliveira", você já não irá. Mas se chamar Bruno Larocca, você irá até a porta.
JavaScript funciona da mesma maneira mas é um pouco mais restrito, porque máquinas e computadores precisam receber instruções diretas e se houver nomes iguais para coisas diferentes, o erro acontece.
Para solucionar o problema, modifique o nome da função em que você utiliza a biblioteca collide para verificaColisaoRaqueteBiblioteca
function verificaColisaoRaqueteBiblioteca(x,y){
colidiu = collideRectCircle(x, y, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, raio);
if (colidiu){
velocidadeXBolinha *= -1;
raquetada.play();
}
}
Em seguida, vá na function draw() e comente a primeira chamada de função verificaColisaoRaquete e depois modifique o nome das outras duas para verificaColisaoRaqueteBiblioteca, pois assim impede que haja conflitos.
function draw() {
background(0);
mostraBolinha();
movimentaBolinha();
verificaColisaoBorda();
mostraRaquete(xRaquete, yRaquete);
//verificaColisaoRaquete();
verificaColisaoRaqueteBiblioteca(xRaquete,yRaquete);
mostraRaquete(xRaqueteOponente, yRaqueteOponente);
movimentaRaqueteOponente();
verificaColisaoRaqueteBiblioteca(xRaqueteOponente, yRaqueteOponente);
incluiPlacar ();
marcaPonto ();
}
Espero que tenha ajudado!
Abraços!