1
resposta

[Sugestão] Refatoração de algumas partes do código

Oi pessoal, tudo bem? Sou totalmente iniciante na programação e gostaria de compartilhar uma coisa que fiz em meu código: eu organizei de um modo diferente algumas funções e as separei em variáveis, vide pontos da bolinha, pontos da raquete e pontos da raquete do oponente. Durante o código, foi mais intuitivo montar algumas funções. Toda possibilidade de deixar o código mais organizado é válido :) espero que gostem!

// variáveis da bolinha
let xBolinha = 300;
let yBolinha = 200;
diametro = 13;
raio = diametro / 2;

// pontos da bolinha
let superiorBolinha = yBolinha - raio;
let esquerdaBolinha = xBolinha - raio;
let inferiorBolinha = yBolinha + raio;
let direitaBolinha = xBolinha + raio;

//velocidade de movimento da bolinha
let velocidadexBolinha = 6;
let velocidadeyBolinha = 6;

//variáveis da raquete
let xRaquete = 5;
let yRaquete = 150;
let larguraRaquete = 10;
let alturaRaquete = 90;

//pontos da raquete
let superiorRaquete = yRaquete;
let direitaRaquete = xRaquete + larguraRaquete;
let inferiorRaquete = yRaquete + alturaRaquete;

//variáveis da raquete oponente
let xRaqueteOponente =  585;
let yRaqueteOponente = 5;
let velocidadeyRaqueteOponente;

//pontos da raquete do oponente
let superiorRaqueteOponente = yRaqueteOponente + alturaRaquete;
let esquerdaRaqueteOponente = xRaqueteOponente;
let inferiorRaqueteOponente = yRaqueteOponente - alturaRaquete

//placar do jogo
let meusPontos = 0;
let pontosOponente = 0;

//sons do jogo
let raquetada;
let ponto;
let trilha;

//oponente
let chanceDeErrar = 0;

// ~~ INÍCIO DO CÓDIGO ~~ //

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

function setup() {
  createCanvas(600, 400);
  trilha.loop();

}

function draw() {
  background(0);
  mostrarbolinha();
  movimentobolinha();
  colisaobolinha();
  mostrarraquete();
  movimentoraquete();
  verificacolisaoraquete();
  mostrarraqueteoponente();
  movimentoraqueteoponente();
  verificarcolisaoraqueteoponente();
  incluirplacar();
  marcarponto();
   

}

function mostrarbolinha(){
  circle(xBolinha, yBolinha, diametro);
}

function movimentobolinha(){
  xBolinha += velocidadexBolinha;
  yBolinha += velocidadeyBolinha;
  
  superiorBolinha = yBolinha - raio;
  esquerdaBolinha = xBolinha - raio;
  inferiorBolinha = yBolinha + raio;
  direitaBolinha = xBolinha + raio; 
}

function colisaobolinha(){
  if (xBolinha + raio > width ||
    xBolinha - raio < 0 ) 
    velocidadexBolinha *= -1;
    
  if (yBolinha +raio > height ||
    yBolinha - raio < 0)
    velocidadeyBolinha *= -1;
}

function mostrarraquete(){
  rect(xRaquete, yRaquete, larguraRaquete, alturaRaquete);
}

function mostrarraqueteoponente(){
  rect(xRaqueteOponente, yRaqueteOponente, larguraRaquete, alturaRaquete);
}

function movimentoraquete(){
  if (keyIsDown(UP_ARROW)){
    yRaquete -= 10;
    }
  if (keyIsDown(DOWN_ARROW)){
    yRaquete += 10;
  }
  
  superiorRaquete = yRaquete;
  direitaRaquete = xRaquete + larguraRaquete;
  inferiorRaquete = yRaquete + alturaRaquete;
  
  yRaquete = constrain(yRaquete, 10, 310);
  
  }

function movimentoraqueteoponente(){
  velocidadeyRaqueteOponente = yBolinha - yRaqueteOponente - alturaRaquete / 2 - 30;
  yRaqueteOponente += velocidadeyRaqueteOponente
  
superiorRaqueteOponente = yRaqueteOponente + alturaRaquete;
esquerdaRaqueteOponente = xRaqueteOponente;
inferiorRaqueteOponente = yRaqueteOponente - alturaRaquete
  
  calculaChanceDeErrar ();
  
  yRaqueteOponente = constrain(yRaqueteOponente, 10, 310);
}

function verificacolisaoraquete(){
  if (esquerdaBolinha < direitaRaquete && superiorBolinha < inferiorRaquete && inferiorBolinha > superiorRaquete){
    velocidadexBolinha *= -1;
    raquetada.play();
    }
  }

function verificarcolisaoraqueteoponente(){
  if (direitaBolinha > esquerdaRaqueteOponente && inferiorBolinha < superiorRaqueteOponente && inferiorBolinha > inferiorRaqueteOponente){
    velocidadexBolinha *= -1;
    raquetada.play();
  }
}

function incluirplacar(){
  textAlign(CENTER);
  textSize(16);
  fill(color(131,111,255));
  rect(150,10 ,40 ,20);
  fill(255);
  text(meusPontos, 170, 26);
  fill(color(131,111,255));
  rect(450,10,40,20);
  fill(255);
  text(pontosOponente, 470, 26);
 
      //text(pontos,x,y)
}

function marcarponto(){
  if (xBolinha > 590){meusPontos += 1;
      ponto.play();
  }
  if (xBolinha < 10){pontosOponente += 1 
      ponto.play();
  }
}
function calculaChanceDeErrar(){
  if (pontosOponente >= meusPontos) {
    chanceDeErrar += 1
    if (chanceDeErrar >= 39){
    chanceDeErrar = 40
    }
  } else {
    chanceDeErrar -= 1
    if (chanceDeErrar <= 35){
    chanceDeErrar = 35}
  }
  
function bolinhaNaoFicaPresa(){
    if (XBolinha - raio < 0){
    XBolinha = 23
    }
}
  
}
1 resposta

Isso pq vc e iniciante srsr po eu so consigo fazer olhanod os exerciocios do professor algfunmas coisas ja vou fazendo sozinho srsrs