4
respostas

os Pontos não marcam!!!

Bom dia Pessoal, já fiz de tudo e, coloquei +1 ,as variáveis, já subtrai o raio e nada. as vezes marca um ponto e depois não marca mais... Segue código

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

//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;



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

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

} 

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

}

function movimentaBolinha (){
   //removendo o xBolinha e colacando += (ficar mais apresentado)
    xBolinha += velocidadeXdaBolinha; 
    yBolinha += velocidadeYdaBolinha;
}

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() {
  velocidadeYOponente = yBolinha - yRaqueteOponente - raqueteComprimento / 2- 30 ;
  yRaqueteOponente += velocidadeYOponente

}

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

}

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

  if (colidiu){
    velocidadeXdaBolinha *=-1
  }
}

function incluiPlacar(){
  fill(255)
  text(meusPontos, 278, 26)
  text(pontosDoOponente, 321, 26)

}

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

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


4 respostas

Bom dia, na função “ marcaPonto”, você acabou por colocar “ meusPontos =+ 1”, quando o correto deveria ser “meusPontos +=1”, ênfase na ordem do sinal de igual e de adição, o mesmo vale para os pontos do oponente.

mesmo assim não deu certo amigo, continua sem MARCAR =(, segue código

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

//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 ;



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

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

} 

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

}

function movimentaBolinha (){
   //removendo o xBolinha e colacando += (ficar mais apresentado)
    xBolinha += velocidadeXdaBolinha; 
    yBolinha += velocidadeYdaBolinha;
}

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() {
  velocidadeYOponente = yBolinha - yRaqueteOponente - raqueteComprimento / 2- 30 ;
  yRaqueteOponente += velocidadeYOponente

}

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

}

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

  if (colidiu){
    velocidadeXdaBolinha *=-1
  }
}

function incluiPlacar(){
  fill(255)
  text(meusPontos, 278, 26)
  text(pontosDoOponente, 321, 26)

}

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

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



Cara, acho que atualizei aqui e foi, devia estar com erro no cachê, heheheh, vou deixar o código novamente.. Obrigado Irmão

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

//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 ;



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

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

} 

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

}

function movimentaBolinha (){
   //removendo o xBolinha e colacando += (ficar mais apresentado)
    xBolinha += velocidadeXdaBolinha; 
    yBolinha += velocidadeYdaBolinha;
}

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() {
  velocidadeYOponente = yBolinha - yRaqueteOponente - raqueteComprimento / 2- 30 ;
  yRaqueteOponente += velocidadeYOponente

}

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

}

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

  if (colidiu){
    velocidadeXdaBolinha *=-1
  }
}

function incluiPlacar(){
  fill(255)
  text(meusPontos, 278, 26)
  text(pontosDoOponente, 321, 26)

}

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

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


A questão ai era o diâmetro da bolinha... Primeiro tu colocou 30, dando 15 cada raio. O x da bolinha está no centro dela, então, tocando a borda da bolinha na extremidade da tela, o x ficava a 5 de chegar nos 590 e nos 10, não atendendo a condição do if.

Quando o diâmetro foi pra 20, dando 10 cada raio, deu certo.