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.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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!