1
resposta

[Bug] Pontos bolinha durante tentativa de reparo

durante minha tentativa de solucionar o Bug eu criei uma variavel (let bordas = 10;) adicionei a function :

function reparo(){
  if(xBolinha < bordas){
    xBolinha = 300;
    yBolinha = 200;
    console.log("### deu certo! ###")

seguindo o seguinte codigo:

porem quanto a bolinha marca Ponto reinicia normal como fiz, porem ele marca 3 pontos ao inves de 1, tem algo que possa mecher para consertar isso?

//variavel bolinha
let xBolinha = 300;
let yBolinha = 200;
let diametro = 23;
let raio = diametro / 2;

let velocidadeXbolinha = 5;
let velocidadeYbolinha = 5;

//variaveis raquete
let xRaquete = 10;
let yRaquete = 160;
let comprimentoRaquete = 10;
let alturaRaquete = 100;
let bordas = 10;



//raquete oponente

let xRaqueteOponente = 580;
let yRaqueteOponente = 160;
let velocidadeYoponente ;

//pontos

let meusPontos = 0;
let pontosOponente = 0;

let colidiu = false;


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

function draw() {
  background(0);
  mostraBolinha();
  movimentaBolinha();
  colisaoBolinha();
  mostraRaquete(xRaquete ,yRaquete);
  movimentaRaquete();
  //colisaoRaquete();
  mostraRaquete(xRaqueteOponente ,yRaqueteOponente);
  verificaColisaoRaquete(xRaquete, yRaquete)
  verificaColisaoRaquete(xRaqueteOponente, yRaqueteOponente)
  movimentaRaqueteOponente();
  incluirPlacar();
  marcaPonto();
  reparo();


}

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

function movimentaBolinha(){
  xBolinha += velocidadeXbolinha;
  yBolinha += velocidadeYbolinha;
}

function colisaoBolinha(){
  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, comprimentoRaquete, alturaRaquete, bordas);
}

function movimentaRaquete(){
  if(keyIsDown(UP_ARROW)){
    yRaquete -= 10;
  }
  if(keyIsDown(DOWN_ARROW)){
    yRaquete += 10;
  }
}

function colisaoRaquete(){
  if(xBolinha - raio < xRaquete + comprimentoRaquete && yBolinha - raio < yRaquete + alturaRaquete && yBolinha + raio > yRaquete){
    velocidadeXbolinha *= -1;


  }
}

function verificaColisaoRaquete(x, y){
  colidiu =
  collideRectCircle(x, y,comprimentoRaquete, alturaRaquete, xBolinha, yBolinha, raio)
    if(colidiu){
      velocidadeXbolinha *= -1;


 }
}

function movimentaRaqueteOponente(){
  velocidadeYoponente = yBolinha - yRaqueteOponente - comprimentoRaquete /2 - 30;
  yRaqueteOponente += velocidadeYoponente
}

function incluirPlacar(){
  textAlign(CENTER);// com a palavra center centraliza o texto
  textSize(16); // aumentar tamanho texto
  fill(color(255, 140, 0)) // cor laranja
  stroke(255); // borda branca
  rect(130, 10, 40, 20 ) //caixinha do placar
  fill(255); //prencher a cor do zero
  text(meusPontos, 150 , 26); // texto 
  fill(color(255, 140, 0)) // cor laranja
  stroke(255); // borda branca
  rect(430, 10, 40, 20) // caixinha do placar
  fill(255); //prencher a cor do zero
  text(pontosOponente, 450, 26); // texto


}

function marcaPonto(){
  if(xBolinha > 585){
    meusPontos += 1 ;

  }
  if(xBolinha < 15){
    pontosOponente += 1;
  }

}

function reparo(){
  if(xBolinha < bordas){
    xBolinha = 300;
    yBolinha = 200;
    console.log("### deu certo! ###")

  }
}

1 resposta

Olá Álvaro, tudo bem com você?

Peço desculpa pela demora para responder o seu tópico.

Realizei alguns testes no seu código, com base na situação que você havia comentado no seu tópico, porém, não consegui replicar esse problema. O que me levar a concluir que não há nenhum problema com relação ao seu código, que foi compartilhado.

Com isso, caso está situação ainda esteja acontecendo, peço para enviar um print do exato momento em que ocorre. Assim poderei lhe ajudar melhor e lhe darei uma resposta mais assertiva.

Bons estudos!

Fico no aguardo e à disposição