1
resposta

Exercicio Modulo 4

// Variaveis da Bolinha
let xBolinha = 300;
let yBolinha = 200;
let diametro = 15;
let raio = diametro / 2;

// Variaveis da Raquete
let xRaquete = 5;
let yRaquete = 150;
let raqueteComprimeto = 10;
let raqueteAltura = 90;

// Variaveis do Raquete Oponente 
let xRaqueteOponente = 585;
let yRaqueteOponente = 150;
let velocidadeYOponente;

// Velocidade da Bolinha
let velocidadeXBolinha = 5;
let velocidadeYBolinha = 5;

let colidiu = false;

// Placar Jogo
let meusPontos = 0;
let pontosDoOponente = 0;

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

function draw() {
  background(0);
  mostraBolinha();
  movimentaBolinha(); 
  verificaColisaoBorda();
  mostraRaquete(xRaquete, yRaquete);
  mostraRaquete(xRaqueteOponente, yRaqueteOponente);
  movimentaMinhaRaquete();
  movimentaRaqueteOponente();
  //verificaColisaoRaquete();
  colisaoRaqueteBiblioteca(xRaquete, yRaquete);
  colisaoRaqueteBiblioteca(xRaqueteOponente, yRaqueteOponente);
  incluiPlacar();
  contadorPontos();



}

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

function movimentaBolinha (){
  xBolinha += velocidadeXBolinha;
  yBolinha += velocidadeYBolinha;
}

function verificaColisaoBorda(){
    if (xBolinha + raio > width ||
      xBolinha - raio < 0 ) {
    velocidadeXBolinha *= -1; 
  }  

  if (yBolinha + raio > height || yBolinha - raio < 0){
    velocidadeYBolinha *= -1
  }
}

function mostraRaquete(x,y){
  rect ( x, y, raqueteComprimeto, raqueteAltura)
}


function movimentaMinhaRaquete(){
  if (keyIsDown (UP_ARROW)) {
    yRaquete -= 10;
  }
   if (keyIsDown (DOWN_ARROW)) {
    yRaquete += 10;
  }

}

function verificaColisaoRaquete(){
  if (xBolinha - raio < xRaquete + raqueteComprimeto && 
       yBolinha - raio < yRaquete + raqueteAltura &&
       yBolinha + raio > yRaquete){
    velocidadeXBolinha *= -1;
  }
}

function colisaoRaqueteBiblioteca(x,y){
  colidiu = collideRectCircle(x, y, raqueteComprimeto, raqueteAltura, xBolinha, yBolinha, raio);
  if (colidiu){velocidadeXBolinha *= -1;}
}


function movimentaRaqueteOponente (){
  velocidadeYOponente = yBolinha - yRaqueteOponente - raqueteComprimeto / 2 - 30;
  yRaqueteOponente += velocidadeYOponente;

}

function incluiPlacar(){
  fill (255);
  text(meusPontos, 278, 26);
  text(pontosDoOponente, 321, 26);
}

function contadorPontos(){
  if (xBolinha - raio < 1){pontosDoOponente += 1;}
  if (xBolinha + raio > 598){meusPontos += 1;}
}


1 resposta

OI Caio! Parabéns pelo seu esforço! Ficou bom. E parece não haver nenhum erro. Se você me permitir, gostaria de dar algumas sugestões:

  • Utilizar nomes de variáveis mais descritivos para tornar o código mais legível. Por exemplo, em vez de usar "xBolinha", "yBolinha", "xRaquete", etc, você pode usar "posicaoXBolinha", "posicaoYBolinha", "posicaoXRaquete", etc.

  • Utilizar constantes ao invés de variáveis para valores que não serão alterados durante a execução do programa. Por exemplo, você pode usar "const larguraTela = 600" e "const alturaTela = 400" ao invés de usar "width" e "height" diretamente.

  • Isolar as responsabilidades de cada função, deixando-as mais simples e fáceis de entender. Por exemplo, a função "draw()" está fazendo muitas coisas diferentes, como desenhar a bolinha, movê-la, verificar colisões, etc. É recomendável separar essas tarefas em funções diferentes, como "desenharBolinha()", "moverBolinha()", "verificarColisaoBorda()", etc.

Isso vai tornar seu código mais organizado e mais legivel.

Sucessos mil a ti