Oi, Robson! Tudo bem?
Ao clicarmos na chave que inicia os comandos da função verificaColisaoBorda()
podemos notar que a chave correspondente ao final dessa função é a última chave presente no código, logo, a função mostrarRaquete()
não está sendo definida no escopo global do código, pois está dentro da função verificaColisaoBorda()
, não podendo assim ser chamada dentro da função draw()
, já que ela apenas poderá chamar funções declaradas no escopo global do código.
Para resolvermos esse problema, então, devemos excluir a última chave existente no código e adicionar uma chave "}" antes da função mostrarRaquete()
. Dessa forma, estaremos fechando corretamente a função verificaColisaoBorda()
e declarando as demais funções que vem após ela no escopo global do código.
Deixaremos, então, essa parte do código da seguinte forma:
function verificaColisaoBorda() {
if (xBolinha + raio > width ||
xBolinha - raio < 0) {
velocidadeXBolinha *= -1;
}
if (yBolinha + raio > height || yBolinha - raio<0){
velocidadeYBolinha *= -1
}
}
function mostrarRaquete() {
rect(xRaquete, yRaquete, raqueteComprimento, raqueteAltura);
}
//seta pra cima
function movimentaMinhaRaquete(){
if (keyIsDown(UP_ARROW)) {
yRaquete -= 10;
}
//seta pra baixo
if (keyIsDown(DOWN_ARROW)) {
yRaquete += 10;
}
}
Além disso, precisamos fazer uma pequena alteração dentro da função draw()
, que consiste em substituirmos o comando movimentarMinhaRaquete();
por movimentaMinhaRaquete();
, visto que, é dessa maneira que a função está sendo nomeada no código. Deixaremos, então, a função da seguinte maneira:
function draw() {
//fundo
background(0);
//Bolinha
mostrarBolinha();
movimentaBolinha();
verificaColisaoBorda();
//M Raquete
mostrarRaquete();
movimentaMinhaRaquete();
}
Espero ter ajudado! Qualquer dúvida se sinta à vontade em comunicar, estou à disposição!
Um forte abraço e bons estudos!
Caso este post tenha te ajudado, por favor, marcar como solucionado ✓