3
respostas

não esta marcando como o esperado

nao esta marcando da forma que deveria e não sei o onde esta o erro

//                bolinha
let xBolinha = 300
let yBolinha = 200
let diametro = 30
let xvelocidade =6
let yvelocidade =6
let raio = diametro /2

//               Raquete
let  xRaquete = 5;
let  yRaquete = 150;
let  largura = 10;
let  raqueteComprimento = 90;

//               Raqueteoponente

let xRaqueteoponente = 585
let yRaqueteoponente = 150
let velocidadeYOponente;

//                   colisao

let colidiu = false

//                  placar

let meusPontos = 0
let pontosOponete = 0 

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

function draw() {
  background(0);
  mostraBolinha()
  moveBolinha()
  limetesBolinha()
  mostraRaquete(xRaquete,yRaquete )
  mostraRaquete(xRaqueteoponente,yRaqueteoponente)
  movimentaMinhaRaquete()
//  movimentaraqueteoponente()
//  verificaColisaoRaquete()
  verificacolisaoRaquete(xRaquete,yRaquete)
  verificacolisaoRaquete(xRaqueteoponente,yRaqueteoponente)
  incluiPlacar()
  marcaPonto()

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

function moveBolinha()
 { (xBolinha +=xvelocidade);
 (yBolinha +=yvelocidade);}

function limetesBolinha()
  {if (xBolinha + raio > width || xBolinha -raio <0){
   xvelocidade *= -1;
}
  if (yBolinha + raio > height||yBolinha -raio <0 ) {
    yvelocidade *=-1} 
  }

function mostraRaquete(x,y)
     {rect(x,y,largura,raqueteComprimento)}

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


function verificaColisaoRaquete() {
    if (xBolinha - raio < xRaquete + largura && yBolinha - raio <yRaquete+ raqueteComprimento && yBolinha + raio > yRaquete)
          xvelocidade*= -1;
    }
}
 function verificacolisaoRaquete(x,y){
   colidiu = collideRectCircle(x, y, largura, raqueteComprimento, xBolinha, yBolinha, raio);
     if (colidiu) {
        xvelocidade *= -1;}
 } 
 function movimentaraqueteoponente(){
   velocidadeYOponente = yBolinha - yRaqueteoponente - raqueteComprimento /2 -30;
   yRaqueteoponente += velocidadeYOponente
 }
function incluiPlacar(){
  fill(225)
  text(meusPontos,278,26)
  text(pontosOponete,321,26)
}
function marcaPonto() {
    if (xBolinha > 590) {
        meusPontos += 1;
    }
    if (xBolinha < 10) {
        pontosOponete += 1;
    }
}
3 respostas

achei o diâmetro da bolinha fez a diferença.

Obrigado por comentar a sua solução, Hermes!! Ah, alguém sabe o porquê do diâmetro ser tão importante na hora de marcar os pontos?

O diâmetro influencia porque o ponto que está sendo considerado na marcação do ponto é o centro dela. Se a bolinha tivesse mais que 20 de diâmetro, o centro nunca chegaria a passar do local que está contabilizando o ponto (que no seu código está em 10 para o oponente e 590 para você).

Se quiser fazer um teste, caso você diminua o diâmetro para 10, creio que irá contabilizar 2 vezes.