1
resposta

MEU PLACAR NAO MARCA MEUS PONTOS

Não sei o motivo no meu placar não mostrar meus pontos, se alguem poder ajudar

//parametros da bolinha
let xbolinha = 280;
let ybolinha = 200;
let diametro = 20;
let raio = diametro/ 2;

//velocidade da bolinha
let velocidadexbolinha = 6;
let velocidadeybolinha = 6;

//variaves raquete
let xraquete = 1;
let yraquete = 150;
let largura = 10;
let altura = 90;

//variaveis raquete oponente
let xraqueteoponente = 548;
let yraqueteoponente = 150;
let velocidadeyoponente;

let colidiu = false;

//placar do jogo
let meuponto = 0;
let pontooponente = 0;

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

function draw() {
  background(0);
mostrabolinha();
movimentobolinha();
colisaoborda();
mostraraquete(xraquete, yraquete);  
movimentaraquete(xraquete, yraquete);
//verificacolisaoraquete();
colisaoraquete(xraquete, yraquete);
mostraraquete (xraqueteoponente, yraqueteoponente);
movimentaraqueteoponente();
colisaoraquete(xraqueteoponente, yraqueteoponente);
incluirplacar();
marcarponto();
}
function mostrabolinha(){
  circle(xbolinha, ybolinha, diametro);
}

function movimentobolinha(){
xbolinha = xbolinha + velocidadexbolinha
ybolinha = ybolinha + velocidadeybolinha 
}

function colisaoborda(){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, largura,altura)
}

function movimentaraquete(){
  if (keyIsDown(UP_ARROW)){
    yraquete -= 10;
  }
 if (keyIsDown(DOWN_ARROW)){
    yraquete += 10;
  } 
}

function verificacolisaoraquete(x,y){
if (x - raio < y + largura 
    && ybolinha - raio < yraquete + altura
   && ybolinha + raio > yraquete){
  velocidadexbolinha *= -1;
}  
}

function colisaoraquete(x,y){
  colidiu =
  collideRectCircle(x, y, largura, altura, xbolinha, ybolinha, raio);
  if (colidiu){
    velocidadexbolinha *= -1;
  }
}

function movimentaraqueteoponente() {
    velocidadeyponente = ybolinha - yraqueteoponente - 
      largura / 2 - 100;
    yraqueteoponente += velocidadeyponente
}

function incluirplacar(){
  fill(255)
  text(meuponto, 210, 26)
  text(pontooponente, 320,26)
}

function marcaponto(){
  if (xbolinha > 570){
    meuponto += 1
  }
}

function marcarponto(){
  if (xbolinha < 5){
    pontooponente += 1
  }
}
1 resposta

Olá, Gabriel! Tudo certo?

Desde já, agradeço a paciência em aguardar uma resposta!

Ao analisar seu código, podemos perceber que existem duas funções distintas que realização a marcação de ponto:

function marcaponto(){
  if (xbolinha > 570){
    meuponto += 1
  }
}

function marcarponto(){
  if (xbolinha < 5){
    pontooponente += 1
  }
}

No entanto, somente marcarponto() é chamada em draw(). Para que uma função seja executada, precisamos escrevê-la e, logo em seguida, adicionar parênteses. Sendo assim, uma vez que marcaponto() não foi chamada, os pontos que conquistamos não aparecerão em nosso placar.

Nesse sentido, uma das maneiras de resolver esse problema é passando os comandos de marcaponto() para marcarponto(). Visto que as duas possuem, de certo modo, o mesmo objetivo, não há problema em deixarmos somente uma das funções em nosso código!

Após a alteração, chegamos no seguinte resultado:

function marcarponto(){
  if (xbolinha > 570){
    meuponto += 1
  }

  if (xbolinha < 5){
    pontooponente += 1
  }
}

Com isso, o nosso placar volta a funcionar!

Aliás, para somar ao seu conhecimento, trago duas coisas muito importantes para o desenvolvimento de um projeto:

  • Indentação: é uma forma de organizar o nosso código através de espaçamentos das linhas conforme a hierarquia dos comandos. Para isso, podemos utilizar a tecla TAB, localizada na porção esquerda do nosso teclado. Com isso, melhoramos a legibilidade e a interpretação deles, olha só:

      if (xbolinha < 5){
        pontooponente += 1
      }

    Note que pontooponente += 1 está levemente afastado da lateral esquerda. Isso significa dizer que tal comando encontra-se dentro da estrutura condicional if.

  • Padrão de nomenclatura: para vincular um projeto ainda mais com a linguagem em que ele foi desenvolvido, podemos, por exemplo, seguir a convenção de nomenclatura formulada pela comunidade de programadores. Para saber um pouco mais sobre o assunto, deixo a seguir um artigo da Alura sobre tal temática:

Por fim, gostaria de dizer que alterei o seu tópico com objetivo de formatar o código que você compartilhou conosco.

Para realizar isso, você pode seguir os passos que estão logo abaixo. Sem a formatação correta o código acaba ficando escondido no post final.

  • No seu terminal, selecione e copie a seção com o código;
  • Aqui no fórum, procure o ícone </>. É a sétima opção na aba superior do nosso editor de texto;
  • Cole o código copiado entre as duas linhas que surgirem.

Para confirmar se está tudo certo, você pode pré-visualizar seu post clicando no último ícone da esquerda para a direita, ou também usando o atalho F9.

Caso surjam dúvidas ao longo dos seus estudos, lembre-se que você pode contar com o fórum. Fico à disposição para te ajudar!

Grande abraço, Gabriel!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado! ✓.