1
resposta

Meus pontos estão sendo computados de 3 em 3

Quando a bolinha encosta na parede o placar soma 3 pontos ao invés de 1, não consegui identificar o motivo.

let xbolinha = 300
let ybolinha = 200

let velocidadebolinhax = 5
let velocidadebolinhay = 5

let alturaraquete = 80
let larguraraquete = 15
let xraquete = 10
let yraquete = 200

let xraqueteoponente = 580
let yraqueteoponente = 200
let velocidaderaqueteoponente = 30;

let colisao = false

let pontosdudu = 0
let pontosoponente = 0


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

function draw() {
  background(0);
  bolinha()
  movimentabolinha()
  desenharaquete(xraquete,yraquete)
  movimentaraquete()
  colisaoraquete()
  desenharaquete(xraqueteoponente,yraqueteoponente)  
  //movimentaraqueteoponente()
  colisaoraqueteoponente()
  pontos()
  mostrarpontos()
}

function bolinha(){
  circle(xbolinha,ybolinha,15)
}

function movimentabolinha(){
  if(xbolinha>600 || xbolinha<0)
    velocidadebolinhax = velocidadebolinhax*-1 
  xbolinha = xbolinha + velocidadebolinhax
  if(ybolinha>400 || ybolinha<0)
     velocidadebolinhay = velocidadebolinhay*-1 
  ybolinha = ybolinha + velocidadebolinhay

}

function desenharaquete(x,y){

  rect(x, y, larguraraquete, alturaraquete)
}

function movimentaraquete(){

  if (keyIsDown(UP_ARROW)) {
    yraquete = yraquete - 5
  }

  if (keyIsDown(DOWN_ARROW)) {
    yraquete = yraquete + 5;
  }
}

function colisaoraquete(){

  if(xbolinha<xraquete+larguraraquete && ybolinha>yraquete && ybolinha<yraquete+alturaraquete)

    velocidadebolinhax = velocidadebolinhax*-1

}

function movimentaraqueteoponente(){
    yraqueteoponente = ybolinha
}

function colisaoraqueteoponente(){
  colisao =    collideRectCircle(xraqueteoponente,yraqueteoponente,larguraraquete, alturaraquete,xbolinha,ybolinha,15);

  if(colisao)

    velocidadebolinhax = velocidadebolinhax*-1

}

function pontos(){

  if(xbolinha <1)
    pontosoponente = (pontosoponente + 1)

  if(xbolinha > 599)
    pontosdudu = (pontosdudu + 1)
}

function mostrarpontos(){
  fill(255)
  text(pontosdudu,276,26)
  text(pontosoponente, 300,26)
}
1 resposta

Eduardo, não sei te explicar com clareza, mas no meu código estava acontecendo isso também. Eu aumentei a velocidade da bolinha para 10, tanto no eixo x como no y. Suponho que o JavaScript contabilize os pontos, pelo tempo que a bolinha fica encostada na borda. teste aí, aumentar a velocidade.