1
resposta

[Sugestão] Sugestão para pontuação no adversário + resolução de bola presa

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:
    1. Uma variavel de dificuldade igual a 0 (no código abaixo, trata-se do let dificuldade = 0);
    2. Utilizar a colisão pela biblioteca recomendada pelo professor;
    3. Função de randomização de dificuldade (no código abaixo, trata-se do function randomizaDificuldade(x,y){});
    4. Chamar a função de randomização de dificuldade após a verificação de colisão na raquete adversária;
    5. Atribuir o valor "0" para a dificuldade nos momentos em que os pontos forem feitos.
    6. 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! :)

1 resposta

Oi Ronan, tudo bem?

Fico feliz que tenha compartilhado seus conhecimentos aqui no fórum! Espero que continue se dedicando aos estudos e evoluindo cada vez mais.

Caso surjam dúvidas, fico à disposição.

Abraços e bons estudos!