1
resposta

(Aula 05 - Ex. 04) realizado - projeto pronto

Olá!

Exercício finalizado.

P.S.: as medidas e dimensões foram adaptadas para a minha tela.

https://editor.p5js.org/rd_gomes23/sketches/SCmVix2fE

  //variáveis da dimensão da raquete
let cRaquete = 15;
let hRaquete = 100;

  //posição e velocidade da raquete oponente
let xOponente = 580;
let yOponente = 100;
let VelocidadeYOponente;

  //código da comunidade
let Colisao = false;

  //posição da minha raquete
let xMinhaRaquete = 5;
let yMinhaRaquete = 50;

  //variáveis da bolinha
let xBolinha = 300;
let yBolinha = 200;
let Diametro = 30;
let Raio = Diametro / 2;

  //velocidade da bolinha
let VelocidadeXBolinha = 6;
let VelocidadeYBolinha = 6;

  //placar
let MeusPontos = 0;
let PontosOponente = 0;

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

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);
  MostraBolinhaERaquetes();
  MovimentaBolinha();
  VerificaColisao();
  MovimentaRaqueteOponente();
  MovimentarMinhaRaquete();
  VerificaColisãoRaquete();
  VerificaColisãoOponente();
  Placar();
  MarcarPontos();
}

function MostraBolinhaERaquetes(){ 
  circle(xBolinha, yBolinha, Diametro);
  rect(xOponente, yOponente, cRaquete, hRaquete)
  rect(xMinhaRaquete, yMinhaRaquete, cRaquete, hRaquete)
}

function MovimentaBolinha(){
  xBolinha += VelocidadeXBolinha;
  yBolinha += VelocidadeYBolinha;
}

function MovimentaRaqueteOponente(){
  VelocidadeYOponente = yBolinha - yOponente - cRaquete / 2 - 30;
  yOponente += VelocidadeYOponente;
}

function VerificaColisao(){

  if (xBolinha + Raio > width || 
     xBolinha - Raio < 0){
    VelocidadeXBolinha *= -1;
  }
  if (yBolinha + Raio > height || 
     yBolinha - Raio < 0){
    VelocidadeYBolinha *= -1;
  }
}

function MovimentarMinhaRaquete(){
  if (keyIsDown(UP_ARROW)){
    yMinhaRaquete -= 10;
  }
  if (keyIsDown(DOWN_ARROW)){
    yMinhaRaquete += 10;
  }
}

function VerificaColisãoRaquete(){
  if (xBolinha - Raio < xMinhaRaquete + cRaquete && 
      yBolinha - Raio < yMinhaRaquete + hRaquete &&
      yBolinha + Raio > yMinhaRaquete){
      VelocidadeXBolinha *= -1;
    raquetada.play();
  }
}

  //código da comunidade
function VerificaColisãoOponente(){
  Colisao = collideRectCircle (xOponente, yOponente, cRaquete, hRaquete, xBolinha, yBolinha,Raio);
  if (Colisao){
    VelocidadeXBolinha *= -1;
    raquetada.play();
  }
}

function Placar(){
  stroke(255)
  textAlign(CENTER);
  textSize(16);
  fill(color(255,140,0));
  rect(150, 10, 40, 20);
  fill(255);
  text(MeusPontos, 170, 26);
  fill(color(255,140,0));
  rect(430, 10, 40, 20);
  fill(255);
  text(PontosOponente, 450, 26)
}

function MarcarPontos(){
  if (xBolinha > 585){
    MeusPontos += 1;
    ponto.play();
  }
  if (xBolinha < 15){
    PontosOponente += 1;
    ponto.play();
  }
}
1 resposta

Olá, Phelipe! Tudo bem por aí?

Parabéns pelo seu empenho, seu jogo ficou excelente! =)

Caso tenha alguma dúvida não deixe de compartilhar com a gente.

Continue praticando, bons estudos e até mais.