1
resposta

[Bug] Bolinha fica presa na raquete e marca muitos pontos

A bolinha fica presa nas raquetes e marca mais pontos do que deveria

//Variáveis da Bolinha
let xBolinha = 300;
let yBolinha = 200;
let diametro = 15;
let raio = diametro / 2

//Velocidade da Bolinha
let velocidadeXBolinha = 6;
let velocidadeYBolinha = 6;

//Variáveis da Minha Raquete
let xRaquete = 5
let yRaquete = 150
let comprimentoRaquete = 10
let alturaRaquete = 90

//Variáveis da Raquete do Oponente
let xRaqueteOponente = 585
let yRaqueteOponente = 150

let colidiu = false

//Placar do jogo
let meusPontos = 0
let pontosOponente = 0

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

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

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

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

function movimentaMinhaRaquete () {
  if (keyIsDown (UP_ARROW)) {
    yRaquete -= 10
  }
  if (keyIsDown (DOWN_ARROW)) {
    yRaquete += 10
  }
  yRaquete = constrain(yRaquete, 0, 310);
}

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

function movimentaRaqueteOponente () {
  velocidadeYOponente = yBolinha - yRaqueteOponente - comprimentoRaquete/2 - 90;
  yRaqueteOponente += velocidadeYOponente
  yRaqueteOponente = constrain(yRaqueteOponente, 0, 310)
}

function incluiPlacar () {
  textSize(16)
  fill(255);
  text(meusPontos, 278, 26);
  text(pontosOponente, 321, 26);
}

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

Oi, Gabriele

Veja estas dicas: Bolinha presa na raquete?