2
respostas

bolinha PRESA na RAQUETE

Boa tarde pessoal, fiz o que nosso amigo Roger falou, mas acho que deixei passar alguma coisa, alguém pode dar um help? Obrigadoooo

//variaveis da bolinha
let xBolinha =300;
let yBolinha =200;
let diametro = 18;

//variaveis da raquete
let xRaquete =5;
let yRaquete =150; 

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

//velocidades da bolinha
let velocidadeXdaBolinha =7;
let velocidadeYdaBolinha =7;
let raio = diametro / 2;
let raqueteComprimento= 10;
let raqueteAltura = 90;
let colidiu = false;

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

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

function preload(){
  trilha = loadSound("trilha.mp3");
  ponto = loadSound("ponto.mp3")
  raquetada = loadSound("raquetada.mp3")

}

function setup() {
  createCanvas(600, 400);
  //trilha.play();Tocar uma vez, repetir é 
  trilha.loop();
}

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

} 

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

}

function movimentaBolinha (){
   //removendo o xBolinha e colacando += (ficar mais apresentado)
    xBolinha += velocidadeXdaBolinha; 
    yBolinha += velocidadeYdaBolinha;
}
function bolinhaNaoFicaPresa(){
    if (xBolinha + raio < 0){
    console.log('bolinha ficou presa');
    xBolinha = 300;
    }
}

function verificaColisaoBorda(){
  //se = if      //largura
  if (xBolinha + raio > width   || xBolinha - raio
     < 0) {    
    velocidadeXdaBolinha *= -1;
  }
                //altura
  if (yBolinha + raio > height || yBolinha - raio
     < 0 ) {
    velocidadeYdaBolinha *= -1

  }

}

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

}

function movimentaMinhaRaquete(){
  //lembrando k é minusculo
  if (keyIsDown(UP_ARROW)){
    yRaquete -=10;
  }

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

function  movimentaRaqueteOponente() {
   //lembrando k é minusculo
  if (keyIsDown(87)){
    yRaqueteOponente -=10;
  }

  if (keyIsDown(83)){
   yRaqueteOponente +=10;
  }

}

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

}

function verificaColisaoRaquete (x, y){
  colidiu = 
  collideRectCircle(x, y, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, raio);

  if (colidiu){
    velocidadeXdaBolinha *=-1
    raquetada.play();
  }
}

function incluiPlacar(){
  stroke(255);
  textAlign(CENTER);
  textSize(16);
  fill(color(255,140,0));
  rect(200, 10, 40, 20);
  fill(255);
  text(meusPontos, 220, 26);
  fill(color(255,140,0));
  rect(400, 10, 40, 20);
  fill(255);
  text(pontosDoOponente, 420, 26);

}

function marcaPonto(){
  if (xBolinha  > 590){
    meusPontos +=1;
    ponto.play();

  }
  if (xBolinha < 10){
    pontosDoOponente +=1;
    ponto.play();
  }

}


2 respostas

Olá, tudo bem?

Tentei rodar o seu código aqui e aparentemente está rodando tudo tranquilamente, poderia detalhar um pouco melhor esse erro que você comentou?

Oi Diego,

Tenta alterar suas variáveis, diminua xRaquete e aumente xRaqueteOponente

let xRaquete =3;

let xRaqueteOponente = 588;

Para que a bolinha não tenha espaço para entrar.