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

Função do placar não funciona no Pong js

Olá. Quando estou programando a função incluirPlacar não está funcionando, aparece um erro que a função não está definida, alguém pode me ajudar? (até criei duas funções mas nenhuma deu certo)

//variáveis da bolinha
let xB = 300;
let yB = 200;
let D = 25;

//velocidade da bolinha
let vXB = 6;
let vYB = 6;
let R = D / 2;

//variáveis da minha raquete

let xR1 = 5
let yR1 = 150
let lR1 = 8
let aR1 = 90

//variáveis da raquete oponente

let xR2 = 587
let yR2 = 150
let lR2 = 8
let aR2 = 90
let vyR2;

let colidiu = false

//placar do jogo

let meusPontos = 0;
let pontosOponente = 0;

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

function draw() {
  background(0);
  mostrarBolinha();
  direcaoBolinha();
  colisaoBolinha();
  mostrarRaquete(xR1, yR1);
  mostrarRaquete(xR2, yR2);
  direcaoRaquete1();
  colisaoRaquete1();
  direcaoRaquete2();
  colisaoRaquete2();
  incluirPlacar();
  //placarJogo();
}

function mostrarBolinha() {
  circle(xB, yB, D)
  
}

function direcaoBolinha() {
  xB += vXB;
  yB += vYB;
  
}

function colisaoBolinha() {
  if (xB + R > width || xB - R < 0){
    vXB *= -1;
  }
  
  if (yB + R > height || yB - R < 0){
    vYB *= -1;
  }
  
}

function mostrarRaquete(x, y) {
  rect (x, y, lR1, aR1)
  
}

function direcaoRaquete1 () {
  
  if (keyIsDown(UP_ARROW)){
    yR1 -= 10;
  }
  if (keyIsDown(DOWN_ARROW)){
    yR1 += 10;
  }
}

function colisaoRaquete1() {
  if (xB - R < xR1 + lR1&& yB - R < yR1 + aR1 && yB + R > yR1){
    vXB *= -1;    
  }
}

function direcaoRaquete2() {
  vyR2 = yB - yR2 - lR2 /2 -30
  yR2 += vyR2
}

function colisaoRaquete2() {
  if (xB + R > xR2 && yB - R < yR2 + aR2 && yB + R > yR2){
    vXB *= -1;    
  }
  
function incluirPlacar() {
  fill (255)
  text (meusPontos, 278, 26);
  text (pontosOponente, 321, 26);
  
}
  
function placarJogo(){
  fill(255)
  text (meusPontos, 278, 26);
  text (pontosOponente, 321, 26); 
}


}
2 respostas
solução!

Oi, Lucas! Tudo bem?

Para resolvermos o problema basta nos atentarmos às 3 últimas funções no nosso código, excluindo a última chave "}" presente no código, pois a função placarJogo() já possui uma chave de fechamento.

Somado a isso, precisamos adicionar uma chave de fechamento "}" ao final da função colisaoRaquete2().

Dessa forma, deixaremos as nossas 3 últimas funções do código da seguinte maneira:

function colisaoRaquete2() {
  if (xB + R > xR2 && yB - R < yR2 + aR2 && yB + R > yR2){
    vXB *= -1;    
  }
}
  
function incluirPlacar() {
  fill (255)
  text (meusPontos, 278, 26);
  text (pontosOponente, 321, 26);
  
}
  
function placarJogo(){
  fill(255)
  text (meusPontos, 278, 26);
  text (pontosOponente, 321, 26); 
}

Espero ter ajudado! Caso tenha ficado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!

Um forte abraço e bons estudos!

Caso este post tenha te ajudado, por favor, marcar como solucionado ✓

Olá Sarah, muito obrigado pela ajuda! Encontrei e corrigi o erro.