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

Placar não contabiliza pontos

Boa tarde, pessoal! Espero que estejam todos bem.

O placar não está contabilizando os pontos. Segue o código abaixo:

Agradeço a atenção desde já.

//variáveis da bolinha let xBolinha = 300; let yBolinha = 200; let diametro = 30; let raio = diametro / 2;

//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; let colidiu = false;

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

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

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

function draw() { background(0); mostraBolinha(); movimentaBolinha(); verificaColisaoBorda(); mostraRaquete(xRaquete, yRaquete); movimentaMinhaRaquete(); //verificaColisaoRaquete(); verificaColisaoRaquete(xRaquete, yRaquete); mostraRaquete(xRaqueteOponente, yRaqueteOponente); movimentaRaqueteOponente(); verificaColisaoRaquete(xRaqueteOponente, yRaqueteOponente); incluiPlacar(); 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 mostraRaqueteOponente(){ rect(xRaqueteOponente, yRaqueteOponente, raqueteComprimento, raqueteAltura); }

function mostraRaquete(x,y){ rect(x, y, raqueteComprimento, raqueteAltura); }

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

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

function verificaColisaoRaquete(){ if (xBolinha - raio < xRaquete + raqueteComprimento && yBolinha - raio < yRaquete + raqueteAltura && yBolinha + raio > yRaquete){ velocidadeXBolinha *= -1; }

}

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

}

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

}

function incluiPlacar(){ fill(255) text(meusPontos, 278, 26); text(pontosDoOponente, 321, 26);

}

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

2 respostas

Boa tarde!

Conseguem me ajudar?

solução!

Olá, Aederson! Espero que esteja tudo bem por aí!

Verifiquei seu projeto e pude perceber que a bolinha está em um tamanho maior. Dessa forma, precisamos refazer alguns cálculos para que haja uma sensibilidade maior na colisão da bolinha.

Fiz uma pequena alteração nos valores da função marcaPonto() e consegui aumentar a sensibilidade de colisão:

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

     } 

Você pode copiar e testar no seu projeto!

Uma dica bacana também é utilizar o botão "inserir bloco de código </> " para o seu código ficar com a mesma formatação que o meu. Basta você copiar o código, clicar em </> na barra de ferramentas da caixa de respostas e colar seu código.

Um abraço e bons estudos!