Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Registro de evolução Código 1

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

//Velocidade da Bolinha let velocidadeXbolinha = 6; let velocidadeYbolinha = 6;

//Variáveis da raquete let raqueteX = 5; let raqueteY = 150;

//Variáveis da raquete do Oponente let xRaqueteOponente = 585; let yRaqueteOponente = 150; let velocidadeYOponente;

let raqueteComprimento = 10; let raqueteAltura = 90;

let colidiu = false;

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

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

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

let chanceDeErrar = 0;

function setup() { createCanvas(600, 400); trilha.loop(); } function draw() { background(0); mostraBolinha(); verificaColisaoBorda (); movimentaBolinha(); mostraRaquete(raqueteX, raqueteY); movimentaMinhaRaquete(); verificaColisaoRaquete(raqueteX, raqueteY); mostraRaquete (xRaqueteOponente, yRaqueteOponente); movimentaRaqueteOponente(); verificaColisaoRaquete(xRaqueteOponente, yRaqueteOponente); incluirPlacar(); marcaPonto ();

} 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, raqueteComprimento,raqueteAltura); }

function movimentaMinhaRaquete(){ if (keyIsDown(UP_ARROW)) { raqueteY -= 10; }

if (keyIsDown(DOWN_ARROW)) { raqueteY += 10; }

}

function verificaColisaoRaquete(x,y){ colidiu= collideRectCircle(x, y, raqueteComprimento,raqueteAltura,xBolinha, yBolinha, raio) if(colidiu){ velocidadeXbolinha *= -1; raquetada.play() } }

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

}

function incluirPlacar(){ stroke(255) textAlign(CENTER); textSize(16); fill(color(244,140,0)); rect(150,10,40,26,10); fill(255,); text(meusPontos,170,29); fill(color(244,140,0)); rect(450,10,40,26,10) fill(255,); text(pontosDoOponente,470,29 )

} function marcaPonto(){ if(xBolinha > 590){ meusPontos += 1; ponto.play() } if (xBolinha < 10){ pontosDoOponente +=1; ponto.play(); }} function movimentaRaqueteOponente(){ velocidadeYOponente = yBolinha -yRaqueteOponente - raqueteComprimento / 2 - 30; yRaqueteOponente += velocidadeYOponente + chanceDeErrar calculaChanceDeErrar() } function calculaChanceDeErrar() { if (pontosDoOponente >= meusPontos) { chanceDeErrar += 1 if (chanceDeErrar >= 39){ chanceDeErrar = 40 } } else { chanceDeErrar -= 1 if (chanceDeErrar <= 35){ chanceDeErrar = 35 } } }

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

//Velocidade da Bolinha
let velocidadeXbolinha = 6;
let velocidadeYbolinha = 6;

//Variáveis da raquete
let raqueteX = 5;
let raqueteY = 150;

//Variáveis da raquete do Oponente
let xRaqueteOponente = 585; 
let yRaqueteOponente = 150; 
let velocidadeYOponente;



let raqueteComprimento = 10;
let raqueteAltura = 90;

let colidiu = false;

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

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


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

let chanceDeErrar = 0;

function setup() {
  createCanvas(600, 400);
  trilha.loop();
}
function draw() {
  background(0);
  mostraBolinha();
  verificaColisaoBorda ();
  movimentaBolinha();
  mostraRaquete(raqueteX, raqueteY);
  movimentaMinhaRaquete();
  verificaColisaoRaquete(raqueteX, raqueteY);
  mostraRaquete (xRaqueteOponente, yRaqueteOponente);
  movimentaRaqueteOponente();
  verificaColisaoRaquete(xRaqueteOponente, yRaqueteOponente);
  incluirPlacar();
  marcaPonto  ();



}
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, raqueteComprimento,raqueteAltura);
  }


function movimentaMinhaRaquete(){
  if (keyIsDown(UP_ARROW)) {
    raqueteY -= 10;
  }

  if (keyIsDown(DOWN_ARROW)) {
    raqueteY += 10;
  }

}


function verificaColisaoRaquete(x,y){
 colidiu=
  collideRectCircle(x, y, raqueteComprimento,raqueteAltura,xBolinha, yBolinha, raio)
  if(colidiu){
    velocidadeXbolinha *= -1;
    raquetada.play()
  }
}


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

}

function incluirPlacar(){
  stroke(255)
  textAlign(CENTER); 
  textSize(16);
  fill(color(244,140,0));
  rect(150,10,40,26,10);
  fill(255,);
  text(meusPontos,170,29);
  fill(color(244,140,0));
  rect(450,10,40,26,10)
  fill(255,);
  text(pontosDoOponente,470,29 )

}
function marcaPonto(){
  if(xBolinha > 590){
    meusPontos += 1;
    ponto.play()
  }
 if (xBolinha < 10){
  pontosDoOponente +=1;
  ponto.play();
  }    
}
function movimentaRaqueteOponente(){
  velocidadeYOponente = yBolinha -yRaqueteOponente - raqueteComprimento / 2 - 30;
  yRaqueteOponente += velocidadeYOponente + chanceDeErrar
  calculaChanceDeErrar()
}
function calculaChanceDeErrar() {
  if (pontosDoOponente >= meusPontos) {
    chanceDeErrar += 1
    if (chanceDeErrar >= 39){
    chanceDeErrar = 40
    }
  } else {
    chanceDeErrar -= 1
    if (chanceDeErrar <= 35){
    chanceDeErrar = 35
    }
  }
}
solução!

Oi oi, Tiago!!!

Tudo bem com você?

Seu projeto ficou ótimo! A customização no placar ficou excelente. Parabéns pela iniciativa, pois implementar novas funcionalidades e customizações reforça o aprendizado e consolida conhecimento!!

Continue compartilhando suas dúvidas e progresso conosco!

Um grande abraço!

Bons estudos!

Olá Camila,

Obrigado pelo retorno e também por perceber um detalhe tão sutil.