Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Bug] Não está Contabilizando os Pontos. PONG

Oi Pessoal tudo bem? eu fiz escrevi o código igual o Professor passou, e usei duas sugestões que encontrei no fórum. e mesmo assim os pontos não são contabilizados, estou compartilhando o código completo que fiz até o momento. eu estou utilizando a Biblioteca de Colisão 2D.

// medidas da bolinha
let xBolinha = 400;
let yBolinha = 250;
let diametro = 22;
let raio = diametro/2
let esquerdaBolinha = xBolinha - raio;
let superiorBolinha = yBolinha - raio;
let inferiorBolinha = yBolinha + raio;

// medias da raquete
let alturaquete = 90
let larguraraquete = 10
let xRaquete = 05
let yRaquete = 210
let direitaRaquete = xRaquete + larguraraquete;
let superiorRaquete = yRaquete;
let inferiorRaquete = yRaquete + alturaquete;

//raquete Oponente
let xRaqueteOponente = 785;
let yRaqueteOponente = 210;
let movimentoYRaqueteOponente;

//parametro para a velocidade da bolinha
let velocidadeXBolinha = 2;
let velocidadeYBolinha = 2;

let colidiu = false

//variavel placar do jogo
let meusPontos = 0;
let oponentePontos = 0;


function setup() {
  createCanvas(800, 500);

}

function draw() {
  background(05);
  aparecebolinha();
  movimentabolinha();
  limiteborda();
  mostraRaquete(xRaquete, yRaquete);
  mostraRaquete(xRaqueteOponente, yRaqueteOponente);
  movimentaMinhaRaquete();
  //colisaoraquete();
  colisaoraquetebiblioteca(xRaquete, yRaquete);
  colisaoraquetebiblioteca(xRaqueteOponente, yRaqueteOponente);
  movimentaOponenteRaquete();
  incluirPlacar();
  
  
}


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



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



function limiteborda(){
   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,larguraraquete ,alturaquete);
}


//movimentaçao da raquete
function movimentaMinhaRaquete(){
  if (keyIsDown(UP_ARROW)){
    yRaquete -= 10
  }
  if (keyIsDown (DOWN_ARROW)){
    yRaquete += 10
  }
//Limitando A raquete do jogador para não ultrapassar as boras
  yRaquete = constrain(yRaquete, 5, 405);
  
}

function colisaoraquete(){
  if ( xBolinha - raio < xRaquete + larguraraquete &&
     yBolinha - raio < yRaquete + alturaquete &&
     yBolinha + raio > yRaquete){
    velocidadeXBolinha *= -1;
  }

}


function colisaoraquetebiblioteca(x,y){
  colidiu =
  collideRectCircle( x , y , larguraraquete, alturaquete, xBolinha, yBolinha, raio);
  if (colidiu){
    velocidadeXBolinha *= -1;
    
  }
}

function movimentaOponenteRaquete(){
  movimentoYRaqueteOponente = yBolinha - yRaqueteOponente - larguraraquete /2 - 40;
  yRaqueteOponente += movimentoYRaqueteOponente;
// Limitando A Raquete do oponente para não ultrapassar as bordas
  yRaqueteOponente = constrain(yRaqueteOponente, 5, 405);
  
}

function incluirPlacar(){
  fill(255)
  text (meusPontos, 335, 26);
  text (oponentePontos, 435, 26);
  
}

function marcaPontos(){
  if (xBolinha + raio > width){
    meusPontos = meusPontos + 1
  }
  if (xBolinha - raio < 0){
    oponentePontos = oponentePontos + 1
  }
}
1 resposta
solução!

Oi, Vinicius, tudo bem?

Para que a pontuação seja incluída ao placar é necessário que a função ⁣marcaPontos(), seja adicionada dentro da função draw(). Ficaria assim:

function draw() {
  background(05);
  aparecebolinha();
  movimentabolinha();
  limiteborda();
  mostraRaquete(xRaquete, yRaquete);
  mostraRaquete(xRaqueteOponente, yRaqueteOponente);
  movimentaMinhaRaquete();
  //colisaoraquete();
  colisaoraquetebiblioteca(xRaquete, yRaquete);
  colisaoraquetebiblioteca(xRaqueteOponente, yRaqueteOponente);
  movimentaOponenteRaquete();
  incluirPlacar();
  marcaPontos();
}

Lembre-se de incluir as funções criadas dentro da função draw, pois ela é responsável por executar todas as funções para que nosso jogo funcione adequadamente.

Espero ter ajudado. Caso tenha dúvidas, não hesite em postar no fórum!

Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons 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