Olá, Carlos. Tudo bem com você?
Percebi dois pequenos detalhes no seu projeto mas que fazem toda a diferença no resultado final.
function draw()
- Você não chamou a função "movimentaRaqueteOponente()" na "Draw()". Dessa forma, o p5 não vai entender que você quer que essa função apareça na tela.
Como resolvemos?
Basta inserirmos a function movimentaRaqueteOponente() na draw()
function draw() {
background(0);
mostraBolinha();
movimentaBolinha();
verificaColisaoBolinha();
mostraRaquete(xRaquete, yRaquete);
movimentaMinhaRaquete();
verificaColisaoRaquete();
mostraRaquete(xRaqueteOponente, yRaqueteOponente);
movimentaRaqueteOponente(); // bem aqui eu chamo a função de movimentação da raquete do Oponente
}
Aqui também precisamos atentar para uma coisa: você chamou duas vezes a função "verificaColisaoRaquete()", isso gerou um conflito de informações e a raquete não reconhecia a colisão. Eu deixei apenas uma e funcionou muito bem (fiquei um bom tempo batendo cabeça, olhava a lógica e pensava: mas tá tudo certo aqui xD hahah. E o probleminha estava em outro lugar.)
function movimentaRaqueteOponente()
- a Função "movimentaRaqueteOponente()" tem um pequeno erro de escrita na hora de utilizar a "velocidadeyOponente" e o interpretador vai entender que você está chamando uma outra variável no lugar (você escreveu velocidadeyOpoenente).
Como resolvemos?
Precisamos chamar o nome da variável na função exatamente como ele foi declarado. Então fica desse jeito:
function movimentaRaqueteOponente(){
velocidadeyOponente = yBolinha - yRaqueteOponente -comprimentoRaquete / 2 - 30;
yRaqueteOponente += velocidadeyOponente;
}
Como você pode observar são apenas detalhes que influenciaram no resultado do seu projeto. No entanto, a lógica segue correta e seu projeto está ficando muito bom!!
Parabéns pela dedicação e fique à vontade para perguntar aqui em caso de dúvidas.
Um abraço e bons estudos! :)