2
respostas

[Bug] Execução lenta do jogo

Após a inclusão do marcar pontos, a execução do jogo ficou lenta, como um "bug". Já retirei o código de marcar e inserir novamente e nada mudou. O jogo está funcionando, mas com com lentidão.

//variaves da bolinha
let xBolinha = 300;
let yBolinha = 200;
let diametrobola = 25;
let raio = diametrobola/2;

//varaiveis velocidade
let velocidadeXdabola = 7;
let velocidadeYdabola = 7;

//variaveis da Raquete
let xRaquete = 5;
let yRaquete = 150;
let comprimentoRaquete = 10;
let alturaRaquete = 90;
let colidiu = false;

//variaveis Raquete do Oponente
let xRaqueteOponente = 585;
let yRaqueteOponente = 150;
let velocidadeYOponente;

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


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

function draw() {
  background(0);
  mostraBolinha();
  velocidadeBolinha();
  verificaColisao();
  mostraRaquete(xRaquete, yRaquete);
  movimentaRaquete();
  //verificaColisaoRaquete();
  verificaColisaoRaquete(xRaquete, yRaquete);
  mostraRaquete(xRaqueteOponente, yRaqueteOponente);
  movimentaRaqueteOponente();
  verificaColisaoRaquete(xRaqueteOponente, yRaqueteOponente);
  incluirPlacar();
  marcaPonto();
  }

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

function velocidadeBolinha() {
  xBolinha += velocidadeXdabola;
  yBolinha += velocidadeYdabola;
}

function verificaColisao() {
  if (xBolinha + raio > width || xBolinha - raio < 0){
    velocidadeXdabola *= -1;
  }

  if (yBolinha + raio > height || yBolinha - raio < 0){
    velocidadeYdabola *= -1;
} 

}

function mostraRaquete(x,y) { 
  rect(x, y,comprimentoRaquete,alturaRaquete);
}

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

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

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

function movimentaRaqueteOponente() {
  velocidadeYOponente = yBolinha - yRaqueteOponente - comprimentoRaquete / 2 - 100;
  yRaqueteOponente += velocidadeYOponente
}
function incluirPlacar() {
  fill(255)
  text(meusPontos, 278,26);
  text(pontosDoOponente, 321,26);
}

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

Professor, pode desconsiderar, o código voltou a funcionar normal.

Oi, Iuri, tudo bem?

Fico feliz que tenha conseguido resolver o problema que estava tendo com o código. Continue se dedicando em seus estudos e caso tenha dúvidas, estarei à disposição.

Abraços e bons estudos!