Olá, Matheus! Tudo certo?
Antes de tudo, agradeço a paciência em aguardar uma resposta!
A função que trata da colisão da bolinha com as raquetes possui dos parâmetros, x
e y
, veja:
function colisaoraquetebiblioteca(x,y){
colidiu = collideRectCircle(x,y,RaqueteComprimento,RaqueteAltura,xBolinha,yBolinha,raio);
if (colidiu){
velocidadexBolinha *= -1;
}
}
Com isso, proporcionamos uma generalização da função, a qual pode receber quaisquer valores para x e y. Em nosso caso, os valores passados corresponderão às posições das raquetes.
Quando fazemos o chamado de uma função com parâmetros obrigatórios, precisamos adicionar uma variável ou um valor entre os parênteses. A ordem dos itens passados será igual a ordem estabelecida na criação da função.
A função colisaoraquetebiblioteca()
, quando chamada em seu código, não está recebendo os valores que precisa. Por esse motivo, a bolinha está se movendo de maneira diferente.
Para resolver o problema, podemos chamar a função colisaoraquetebiblioteca()
para cada uma das raquetes, adicionando os parâmetros de suas posições, da seguinte forma:
// colisão com a nossa raquete!
colisaoraquetebiblioteca(xRaquete, yRaquete);
// colisão com a raquete do oponente!
colisaoraquetebiblioteca(xRaqueteOp, yRaqueteOp);
O chamado desta função ocorre dentro de draw()
. Sendo assim, ao adicionarmos os comandos vistos acima, chegaremos neste resultado:
function draw() {
background(0);
mostraBolinha();
movimentaBolinha();
verificacolisaoborda();
mostraraquete(xRaquete,yRaquete);
movimentodaraquete();
//verificacolisaocomraquetes();
colisaoraquetebiblioteca(xRaquete, yRaquete); // colisão com a nossa raquete!
mostraraquete(xRaqueteOp,yRaqueteOp);
movimentaRaqueteOp();
colisaoraquetebiblioteca(xRaqueteOp, yRaqueteOp); // colisão com a raquete do oponente!
}
Para enriquecer ainda mais os seus conhecimentos de programação, trago uma dica super interessante de leitura:
O artigo acima, da Alura, comenta sobre algo muito importante no desenvolvimento de códigos, que é a padronização de nomenclaturas para a construção de programas.
Espero que goste da indicação! Aliás, caso surjam dúvidas ao longo da sua jornada de estudos, lembre-se que você pode contar com o fórum. Fico à disposição para te auxiliar!
Até mais, Matheus!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado! ✓.