1
resposta

Pontos do oponente nao contabilizam

Aqui está meu código, se alguem puder me ajudar ...

//variaveis da bolinha
let xBolinha= 300;
let yBolinha=200;
let diametro=22;
let raio = diametro / 2;



// variaveis da velocidade da bolinha
let velocidadexBolinha = 6;
let velocidadeyBolinha = 6;
let raqueteComprimento = 10;
let raqueteAltura = 90;

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

// variaveis raquete 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 ();
  movimentabolinha ();
  verificacolisaoborda ();
 mostraRaquete (xRaquete,yRaquete);
  movimentaMinhaRaquete ();
  //verificaColisaoRaquete ();
  verificaColisaoRaquete (xRaquete,yRaquete);
mostraRaqueteOponete (xRaqueteOponente,yRaqueteOponente);
//movimentaRaqueteOponente();
verificaColisaoRaquete(xRaqueteOponente,yRaqueteOponente);
  incluiPlacar();
  marcaPonto();
  
}

function  mostraBolinha (){
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 mostraRaquete (x,y){
   rect(x, y,raqueteComprimento, raqueteAltura);
  
}
function mostraRaqueteOponete (){
   rect(xRaqueteOponente, yRaqueteOponente,raqueteComprimento, raqueteAltura);
  
}


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

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

function verificaColisaoRaquete (x,y){
 colidiu =  collideRectCircle(x, y, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, raio);
  if (colidiu){velocidadexBolinha *= -1;}
  
}


  function movimentaRaqueteOponente(){
  velocidadeyOponente = yBolinha-yRaqueteOponente - raqueteComprimento/2 - 30;
  yRaqueteOponente+=velocidadeyOponente
  
  
}

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

    // Vamos limitar a movimentação da raquete para que ela não ultrapasse as bordas:
    yRaquete = constrain(yRaquete, 0, 310);
}

function movimentaRaqueteOponente() {
    velocidadeYOponente = yBolinha - yRaqueteOponente - raqueteComprimento / 2 - 30;
    yRaqueteOponente += velocidadeYOponente;

    // Vamos limitar a movimentação da raquete para que ela não ultrapasse as bordas:
    yRaqueteOponente = constrain(yRaqueteOponente, 0, 310);
}

function incluiPlacar(){
  fill(256)
  text (meusPontos, 280,26);
  text (pontosDoOponente, 320,26);
  
  
}

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

Olá Moises, tudo bem?

No seu caso, a melhor opção para inclusão correta dos pontos seria utilizar os mesmos parâmetros da verificação de colisão com as bordas laterais. Para isso, sua função deve estar assim:

function marcaPonto(){
  if (xBolinha + raio > width){ //Verifica se o lado direito da bolinha encostou na borda direita da tela do jogo
    meusPontos += 1;}
   
  if (xBolinha - raio < 0){ //Verifica se o lado esquerdo da bolinha encostou na borda esquerda da tela do jogo 
    pontosDoOponente += 1;} 
}

Espero que isso ajude. Abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!