Com base no código ensinado nas aulas fiz algumas melhorias que gostaria de compartilhar :D.
0 - Criei pastas específicas para salvar os sons e a fonte que baixei
Create Folder -> Sound Uploaded
Create Folder -> Font Uploaded
1 - Baixei a fonte PIXEL e fiz o preload dela para alterar a fonte dos números do jogo.
let fonteTexto;
function preload() {
fonteTexto = loadFont("Font Uploaded/VCR_OSD_MONO_1.001.ttf");
}
function incluiPlacar(meusPontos, xMeuPlacar, pontosOponente, xPlacarOponente, yPlacar) {
stroke(255);
textAlign(CENTER);
textFont(fonteTexto); <-- aqui fiz a alteração
textSize(25);
fill(color(0, 0, 240));
rect(279.5, 8, 40, 25);
fill(color(255, 128, 0));
rect(330.5, 8, 40, 26);
fill(255);
text(meusPontos, xMeuPlacar, yPlacar);
text(pontosOponente, xPlacarOponente, yPlacar);
}
2 - Criei uma função chamada resultadoPartida() que informa se você ganhou ou perdeu para o Oponente e usei a fonte PIXEL.
function resultadoPartida() {
textAlign(CENTER);
textFont(fonteTexto); <-- fonte alterada
textSize(60);
fill(255);
if (meusPontos > pontosOponente) {
text("YOU WIN", 325, 225); <-- Informa que ganhei do Oponente
win.play(); <-- Adicionei um som para isso
} else {
text("YOU LOSE", 325, 225); <-- Informa que perdi para o Oponente
lose.play(); <-- Adicionei um som para isso
}
}
3 - Adicionei um ponto de parada no jogo - quando um dos jogadores fizer 5 pontos - dentro da função draw() e no início dela, antes de todas as outras funções. e chamei a função resultadoPartida().
if (pontosOponente == 5 || meusPontos == 5) {
noLoop();
resultadoPartida();
}
4 - Criei uma função para calcular a chance de errar do Oponente (conforme sugerido no curso) e para isso criei calculaChanceErrar(), adicionei essa função dentro da função que marcaPontuacao() (adiantando a bolinha toda vez que eu marcar ponto no oponente) e adicionei a variável chanceErrar à yRaqueteOponente dentro da função movimentaRaqueteOponente().
let chanceErrar;
function calculaChanceErrar() {
if (meusPontos > pontosOponente && chanceErrar > 0) {
chanceErrar -= 15;
} else if (pontosOponente > meusPontos && chanceErrar < 60) {
chanceErrar += 20;
}
}
function marcaPontuacao() {
if (xBolinha < 10) {
pontosOponente++;
ponto.play();
calculaChanceErrar(); <-- inseri a função aqui, toda vez que alguém marcar ponto
}
if (xBolinha > 640) {
meusPontos++;
ponto.play();
xBolinha -= 20; <-- adianto a bolinha
calculaChanceErrar(); <-- inseri a função aqui, toda vez que alguém marcar ponto
}
}
function movimentaRaqueteOponente() {
velocidadeYOponente = yBolinha - yRaqueteOponente - heightRaquete / 2;
yRaqueteOponente += velocidadeYOponente + chanceErrar; <-- adicionei aqui a variável chanceErrar
}
Dessa maneira, consegui fazer com que a dificuldade do Oponente aumente e diminua conforme o placar do jogo. Espero ter sido claro na explicação, qualquer coisa perguntem que eu tento explicar melhor!
Link código completo: https://editor.p5js.org/pedroscott/sketches/wwMSrrZr9