Boa tarde!
Acabei de finalizar o exercício referente ao desenvolvimento do jogo PONG em JavaScript no P5 e, abaixo, deixo minha sugestão quanto à pontuação no adversário e reset em caso de bola presa:
- Para configurar a dificuldade, apliquei a função "random()" para cada vez que o oponente bater na bolinha, colocando valores negativos e positivos para possibilitar que este erre tanto quando a bola for por cima (valores negativos) quanto por baixo (valores positivos). Sugiro os valores "-55, 135", pois através de testes aparentou uma dificuldade adequada;
- Para resetar a bola, atribui as coordenadas iniciais ao X e Y da bolinha cada vez que um ponto é feito;
- Para acrescentar este código, devemos escrever:
- Uma variavel de dificuldade igual a 0 (no código abaixo, trata-se do let dificuldade = 0);
- Utilizar a colisão pela biblioteca recomendada pelo professor;
- Função de randomização de dificuldade (no código abaixo, trata-se do function randomizaDificuldade(x,y){});
- Chamar a função de randomização de dificuldade após a verificação de colisão na raquete adversária;
- Atribuir o valor "0" para a dificuldade nos momentos em que os pontos forem feitos.
- Atribuir o X e Y inicial da bolinha em suas respectivas variaveis;
// Variável da dificuldade
let dificuldade = 0;
// Ordem de chamamento na função Draw
function draw() {
verificaColisaoRaqueteBiblioteca(xRaquete,yRaquete);
verificaColisaoRaqueteBiblioteca(xRaqueteOponente,yRaqueteOponente);
randomizaDificuldade(-55, 135); // Oponente erra em cima quando min -30, baixo min +110, mas fica BEM DIFICIL. Como está posicionado abaixo da verificação de colisão do oponente, a dificuldade SÓ SERÁ ALTERADA QUANDO O OPONENTE BATER NA BOLA, não quando o player bater..
}
// Função de randomização de dificuldade
function randomizaDificuldade(x,y){
if(colidiu){
dificuldade = random(x,y);
}
}
Para configurar o reset da dificuldade e da posição da bolinha, segue o código:
function marcaPonto(){
if (xBolinha > 590){
meusPontos += 1;
ponto.play();
xBolinha = 300;
yBolinha = 150;
dificuldade = 0;
}
if (xBolinha < 10){
pontosOponente += 1;
ponto.play();
xBolinha = 300;
yBolinha = 150;
dificuldade = 0;
}
}
Adicionei o seguinte código para verificar se a dificuldade está sendo alterada, comentando/descomentando sua linha no Draw:
// Função de chamamento (draw)
function draw() {
//mostraDificuldade(); // Comente ou "descomente" essa linha se quiser mostrar a dificuldade atual do jogo.
}
// Função para verificar a alteração de dificuldade
function mostraDificuldade(){
fill(color("#FF0000")); // Colore tudo que está abaixo na cor escolhida.
text(dificuldade, 200, 400); // Printa um texto na tela, na cor preta, utilizando a seguinte sintaxe: text(o-que-apresentará, coord-X, coord-Y).
fill(255);
}
Em caso de dúvida, segue o código inteiro no p5. Ele encontra-se com excesso de comentários pois sou iniciante em programação, então, usei este espaço para anotações para fixação e em caso de possíveis futuras consultas.
Valeeeu galera! :)