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

Placar não funciona no jogo pong

Boa tarde, fiz conforme orientado, porém meu placar não está aparecendo, apresenta o seguinte erro: ReferenceError: incluiPlacar is not defined at /sketch.js:43:3.

Não inclui o placar apresenta erros, e eu transcrevi a linguagem toda, mas o erro persiste.

Segue:

//variáveis da bolinha

let xBolinha = 300; let yBolinha = 200; let diametro = 22; let raio = diametro / 2 ;

//variáreis velocidade da bolinha let velocidadexBolinha = 6; let velocidadeyBolinha = 6;

//variáveis da raquete let xRaquete = 5 let yRaquete = 150 let raqueteComprimento = 10 let raqueteAltura = 90

//variáveis do oponente let xRaqueteOponente = 585; let yRaqueteOponente = 150; let velocidadeYOponente;

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

let colidiu = false;

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

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

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)) { yRaquete -= 10; } if (keyIsDown(DOWN_ARROW)) { yRaquete += 10; } } function movimentaRaqueteOponente() { velocidadeYOponente = yBolinha - yRaqueteOponente - raqueteComprimento / 2 - 30; yRaqueteOponente += velocidadeYOponente }

function verificaColisaoRaquete(x, y) { colidiu = collideRectCircle(x, y, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, raio); if (colidiu){ velocidadexBolinha *= -1; } } function colisaoMinhaRaqueteBiblioteca() { colidiu = collideRectCircle(xRaquete, yRaquete, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, raio); if (colidiu) { velocidadeXBolinha *= -1; } } function colisaoRaqueteOponenteBiblioteca() { colidiu = collideRectCircle(xRaqueteOponente, yRaqueteOponente, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, raio); if (colidiu){ velocidadeXBolinha *= -1; } function incluiPlacar() { 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(450, 10, 40, 20); fill(255); text(pontosDoOponente, 470, 26); } function marcaPonto() { if (xBolinha > 590) { meusPontos += 1; } if (xBolinha < 10) { pontosDoOponente += 1; } } }

2 respostas
solução!

Olá Gustavo, tudo bem com você? Espero que sim...

Revisei seu código, encontrei o erro:

function colisaoRaqueteOponenteBiblioteca() {
  colidiu = collideRectCircle(xRaqueteOponente, yRaqueteOponente, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, raio);
  if (colidiu) {
    velocidadeXBolinha *= -1;
  }

  function incluiPlacar() {
    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(450, 10, 40, 20); fill(255);
    text(pontosDoOponente, 470, 26);
  }

  function marcaPonto() {
    if (xBolinha > 590) {
      meusPontos += 1;
    }
    if (xBolinha < 10) {
      pontosDoOponente += 1;
    }
  }
}

Tanto a sua função incluiPlacar, quanto a sua função marcaPonto, estão dentro da função colisaoRaqueteOponenteBiblioteca, para corrigir o seu erro, basta move-las para fora, deixando-as na raiz do arquivo.

function colisaoRaqueteOponenteBiblioteca() {
  colidiu = collideRectCircle(xRaqueteOponente, yRaqueteOponente, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, raio);
  if (colidiu) {
    velocidadeXBolinha *= -1;
  }
}

function incluiPlacar() {
    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(450, 10, 40, 20); fill(255);
    text(pontosDoOponente, 470, 26);
  }

function marcaPonto() {
  if (xBolinha > 590) {
    meusPontos += 1;
  }
  if (xBolinha < 10) {
    pontosDoOponente += 1;
  }
}

Espero ter ajudado a esclarecer sua dúvida. Se tiver mais alguma questão, é só perguntar!

Uma ótima semana e bons estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado . Bons Estudos

Agora simmmmmmmmm!!!!!! Valeu meu amigo