1
resposta

Outra Ideia para deixar o jogo mais interessante.

Eu fiz alumas modificações no código, além das variáveis, para deixar o jogo um pouco mais interessante (eu acho kkkk)

Adicionei alguns vetores para deixar algumas coisas aleatórias, usando as referencias do próprio p5js

Vetor da posição inicial (xBola) e direção (xV, que é a velocidade e a direção do movimento da bola) que é executado sempre no começo de jogo ou após alguém fazer ponto:

//variáveis da bola
let posicao = [50,100,150,200,250,300,350];

//movimento da bola - dessa forma só preciso mudar uma variável, o resto muda junto.
let xV = 7;
let yV = xV;
let direcao = [xV,xV*-1];

function setup() {
  createCanvas(600, 400);
  inicio();
}

function inicio(){
    xBola = 300; 
  //deixa a posição e direção inicial da bolinha aleatória
    yBola = random(posicao);
    xV = random(direcao);
    yV = random(direcao);
}

function colisaoBorda(){
  if (xBola + raio > width){
    pontoR1 += 1;
    inicio(); //faz com que após o ponto, a bola volte ao inicio
    ponto.play();
  }
  if (xBola - raio < 0){
    pontoR2 += 1;
    inicio(); //faz com que após o ponto, a bola volte ao inicio
    ponto.play();
  }
  if (yBola + raio > height || yBola - raio < 0){
    yV *= -1;
    mesa.play();
  }

}

Também uma forma de deixar o movimento da raquete do oponente mais realista, dando uma margem de erro baseado num vetor de velocidade da raquete (rV[]) que é baseado na velocidade da bolinha(xV):

insira seu código aqui
//Variavel da Raquete do Oponente
let rV = [xV+1,xV,xV-1];

function moveraquete2(){
  //faz com que a raquete 2 só se mexa quando a bolinha está na sua mesa e indo em sua direção
  if (xBola > 300 && xV > 0){
    //faz com que a raquete se mova de forma realista e com velocidade variável para a bolinha em vez de se teletransportar, dando uma margem de erro
    if (yRaquete2 != yBola){
      if (yRaquete2 < yBola){
        yRaquete2 += random(rV);
      }
      else{
        yRaquete2 += random(rV) * -1;
      }
    }
  }

}

Eu também modifiquei a movimentação de teclado pra mouse pq eu acho q fica mais fácil controlar, tinha feito assim no scratch, achei legal fazer aqui também.

function moveraquete1(){
  yRaquete1 = mouseY; // faz a raquete seguir o mouse
}

Tem outras modificações fúteis que eu fiz, mas achei essas interessantes, e me custou um certo tempo pra descobrir como fazer kkkkk Provavelmente existe formas melhores de fazer isso, mas essa foi a que eu encontrei kkkkk Espero que tenha ficado bom e alguém veja utilidade.

Quem quiser testar: https://editor.p5js.org/maxpresi/full/zM9Tj2cMd Quem quiser ver o código completo: https://editor.p5js.org/maxpresi/sketches/zM9Tj2cMd

^^

1 resposta

Fala Raphael, como vai?

MEUS PARABÉNS PELO PROJETO!!!

Ficou muito legal, super inspirado na versão original do game. Muito obrigado por compartilhar seu projeto, descrevendo as alterações que fez.

Continue assim e bons estudos!

: )

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software