1
resposta

Minha versão do jogo pong

O código está na forma de pvp.

Essa condição (keyIsDown(UP_ARROW) && yJogador > 0) e (keyIsDown(DOWN_ARROW) && yJogador < 330) abaixo verifica se está saindo do mapa.

function movimentoJogador() {
  if (keyIsDown(UP_ARROW) && yJogador > 0) { 
    yJogador -= 5;
  }

  if (keyIsDown(DOWN_ARROW) && yJogador < 330) {
    yJogador += 5;
  }
}
let posicao_x_bolinha = 300;
let posicao_y_bolinha = 200;
const diametro_bolinha = 20;
const raio_bolinha = diametro_bolinha / 2;
let velocidade_x_bolinha = 6;
let velocidade_y_bolinha = 6;
//---------------------------------------------------------
const alturaJogadores= 70;
const comprimentoJogadores = 10;
//---------------------------------------------------------
const xPc = 5;
let yPc = 160;
let velocidade_y_Pc = 0;
//---------------------------------------------------------
const xJogador = 585;
let yJogador = 160;
//---------------------------------------------------------
let pontosPc = 0;
let pontosJogador = 0;
//---------------------------------------------------------
let somRaquetada;
let somPonto;
let somTrilha;
//---------------------------------------------------------

function preload(){
  somTrilha = loadSound("trilha.mp3");
  somPonto = loadSound("ponto.mp3");
  somRaquetada = loadSound("raquetada.mp3");
}

function setup() {
  createCanvas(600, 400);
  somTrilha.loop();
}
//---------------------------------------------------------

function draw() {
  background(0);

  mostraBolinha();
  movimentoBolinha();
  colisao_BolinhaBorda();

  mostrarJogadores(xPc, yPc, comprimentoJogadores, alturaJogadores);
  mostrarJogadores(xJogador, yJogador, comprimentoJogadores, alturaJogadores)
  movimentoPc();
  movimentoJogador();
  colisao_Biblioteca(xJogador,yJogador);
  colisao_Biblioteca(xPc,yPc);

  mostrarPlacar();
  marcaPonto();
}

//----------------------------------------------------------
function mostrarJogadores(x, y, comprimento, altura) {
  rect(x, y, comprimento, altura);
}

function colisao_Biblioteca(x,y) {
  colidiu = collideRectCircle(x, y, comprimentoJogadores, alturaJogadores, posicao_x_bolinha, posicao_y_bolinha, raio_bolinha);
  if (colidiu) {
    velocidade_x_bolinha *= -1;
    somRaquetada.play();
  }
}

function mostrarPlacar() {
  fill(255);
  textSize(32);
  text(pontosJogador, 250, 50);
  text(pontosPc, 350, 50);
}

function marcaPonto() {
  if (posicao_x_bolinha > 590) {
    pontosJogador += 1;
    somPonto.play();
    posicao_x_bolinha = 300;
    posicao_y_bolinha = 200;
  }
  if (posicao_x_bolinha < 10) {
    pontosPc += 1;
    somPonto.play();
    posicao_x_bolinha = 300;
    posicao_y_bolinha = 200;
  }
}
//--------------------------------------------------------
function movimentoPc() {
  if (keyIsDown(87) && yPc > 0){
        yPc -= 10;
    }
    if (keyIsDown(83) && yPc < 330){
        yPc += 10;
    }
}

/*function movimentoPc() {
  velocidade_y_Pc = posicao_y_bolinha - yPc - comprimentoJogadores / 2 - 30;
  yPc += velocidade_y_Pc;
}*/
//--------------------------------------------------------
function movimentoJogador() {
  if (keyIsDown(UP_ARROW) && yJogador > 0) {
    yJogador -= 5;
  }

  if (keyIsDown(DOWN_ARROW) && yJogador < 330) {
    yJogador += 5;
  }
}
//--------------------------------------------------------
function calculaChanceDeErrar() {
  if (pontosDoOponente >= meusPontos) {
    chanceDeErrar += 1
    if (chanceDeErrar >= 39){
    chanceDeErrar = 40
    }
  } else {
    chanceDeErrar -= 1
    if (chanceDeErrar <= 35){
    chanceDeErrar = 35
    }
  }
}

function mostraBolinha() {
  circle(posicao_x_bolinha, posicao_y_bolinha, diametro_bolinha);
}

function movimentoBolinha() {
  posicao_x_bolinha += velocidade_x_bolinha;
  posicao_y_bolinha += velocidade_y_bolinha;
}

function colisao_BolinhaBorda() {
  if (posicao_x_bolinha + raio_bolinha > width || posicao_x_bolinha - raio_bolinha < 0) {
      velocidade_x_bolinha *= -1;
  }

  if (posicao_y_bolinha + raio_bolinha > height || posicao_y_bolinha - raio_bolinha < 0) {
      velocidade_y_bolinha *= -1;
  }
}
1 resposta

Olá, Lauro! Tudo certo por aí?

Antes de tudo, agradeço a paciência em aguardar uma resposta!

O seu jogo ficou muito bacana, parabéns! Continue se dedicando e empenhando nos estudos!

Para contribuir com seu aprendizado, trago aqui uma dica super interessante para aplicar em seu código e também nos seus projetos futuros: utilizar convenções de escrita! Conforme a linguagem de programação, a comunidade dev gosta de seguir alguns padrões de organização de código.

Um exemplo é o modo pelo qual nomeamos variáveis, funções e outras estruturas do nosso programa. No Javascript, por exemplo, é comum a utilização da convenção “Camel Case” — aqui, a primeira letra é minúscula e as iniciais das próximas palavras são maiúsculas, como neste caso:

const alturaJogadores = 70;

Desse modo, melhoramos a legibilidade e o entendimento de um código. Não só isso, como também tornamos mais simples o processo de manutenção.

Existem outras maneiras de se escrever, mas isso depende de como a comunidade de determinada linguagem decidiu. Por esse motivo, trago um artigo da Alura que aborda essa temática:

Caso apareçam dúvidas ao longo dos seus estudos, lembre-se que você pode enviá-las no fórum. Fico à disposição para te auxiliar.

Grande abraço e ótimos 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