1
resposta

Estou tendo problema com a mudança de velocidade da bola.

Boa tarde, quando eu altero a velocidade da bola para dificultar o jogo, começa a contabilizar os pontos de 3 em 3.

vou colar todo o codigo abaixo e se alguem puder dar uma olhada agradeço muito.

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

//velocidade da bolinha
let velocidadeXBolinha = 8;
let velocidadeYBolinha = 8;

//variáveis da minhaRaquete
let xMinhaRaquete = 5;
let yMinhaRaquete = 150;

//tamanho raquete
let larguraRaquete = 12;
let alturaRaquete = 85;

//variáveis da oponenteRaquete
let xOponenteRaquete = 580;
let yOponenteRaquete = 150;
let velocidadeYOponente;

//palcar do jogo
let meusPontos = 0;
let pontosOponente = 0;

//sons do jogo
let raquetada;
let ponto;
let trilha;

function preload(){
  trilha = loadSound("partida.wav");
  raquetada = loadSound("raquetada.wav");
  ponto = loadSound("ponto.wav");
}

function setup() {
  createCanvas(600, 400);
  trilha.loop();
}

function draw() {
  background(180,0,0);
  mostraBolinha();
  movimentaBolinha();
  verificaColisaoBorda();
  minhaRaquete();
  movimentaMinhaRaquete();
  verificaColisaoMinhaRaquete();
  oponenteRaquete();
  //movimentaOponenteRaquete();
  //movimentaAutoRaqueteOponente();
  verificaColisaoRaqueteOponente();
  incluiPlacar();
  marcaPonto();
}

function mostraBolinha() {
  fill(255,190,0);
  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 minhaRaquete(x,y){
  fill(14,252,254);
  rect(xMinhaRaquete, yMinhaRaquete, larguraRaquete, alturaRaquete);
}

function oponenteRaquete(){
  fill(0,180,0);
  rect(xOponenteRaquete, yOponenteRaquete, larguraRaquete, alturaRaquete);
}

function movimentaMinhaRaquete() {
  if (keyIsDown (81)){
    yMinhaRaquete -= 10;
  }
  if (keyIsDown (65)){
    yMinhaRaquete += 10;
  }
}

function movimentaOponenteRaquete() {
  if (keyIsDown (UP_ARROW)){
    yOponenteRaquete -= 10;
  }
  if (keyIsDown (DOWN_ARROW)){
    yOponenteRaquete += 10;
  }
}

function movimentaAutoRaqueteOponente(){
  velocidadeYOponente = yBolinha - yOponenteRaquete - larguraRaquete / 2 - 30;
  yOponenteRaquete += velocidadeYOponente;
}

function verificaColisaoMinhaRaquete() { 
  if (xBolinha - raio < xMinhaRaquete + larguraRaquete && yBolinha - raio < yMinhaRaquete + alturaRaquete && yBolinha + raio > yMinhaRaquete ){
    velocidadeXBolinha *= -1;
    raquetada.play();
  }
}

function verificaColisaoRaqueteOponente() { 
  if (xBolinha + raio > xOponenteRaquete && yBolinha - raio < yOponenteRaquete + alturaRaquete && yBolinha + raio > yOponenteRaquete ){
    velocidadeXBolinha *= -1;
    raquetada.play();
  }
}

function incluiPlacar(){
  fill(180,0,0);
  rect(150, 10, 40, 25);
  stroke(255,190,0);
  fill(255,190,0);
  textSize(22);
  text(meusPontos, 164, 30);
  fill(180,0,0);
  rect(450, 10, 40, 25);
  stroke(255,190,0);
  fill(255,190,0);
  textSize(23);
  text(pontosOponente, 464, 30);
}

function marcaPonto(){
  if (xBolinha > 585){
    meusPontos += 1;
    ponto.play();
  }
  if (xBolinha < 15){
    pontosOponente += 1;
    ponto.play();
  }
}
1 resposta

Oi Marllon.

Na função movimentaRaqueteOponente, me parece que vc usou a largura para dividir por 2 e subtrair 30, quando coloquei a alturaRaquete no lugar , aquilo q acontecia da bolinha, atravessar a raquete, pelo menos no oponente não acontecia mais. Mas ainda acontecia na MinhaRaquete, mas eu havia também , alterado a colisão do oponente. Acho que tentar fazer sem a biblioteca é válido, mas eu acho que o seu problema, não é os 3 pontos, e sim a colisão que ainda não está controlada. Independente dela fazer 03 pontos ou mais..., não há porque a bolinha atravessar as raquetes e o canvas, como a colisão vem antes de pontos, vc ainda tem que a corrigir. Se estiver com dificuldades para baixar a biblioteca, posta aqui novamente, ou crie outro tópico.

Bons estudos.