Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Oponente não erra ou sempre erra

Quando modifico o valor da movimentação da raquete do oponente ou ele nunca erra ou ele sempre erra.

function movimentoraquete2(){
  velocidadeyoponente = yBolinha - yRaquete2 - LarguraRaquete / 2 - 89
  yRaquete2 += velocidadeyoponente

No caso, eu percebi que se eu mudo o valor até 88 ele nunca erra e a partir de 89 ele erra todas as vezes.

Meu código completo:

// variáveis bolinha
let xBolinha = 300
let yBolinha = 200
let diametro = 15
let raio = diametro / 2

// movimento bolinha
let velocidadexBolinha = 5
let velocidadeyBolinha = 5

// variáveis minha raquete
let xRaquete = 5
let yRaquete = 150
let LarguraRaquete = 10
let AlturaRaquete = 90

let colidiu = false

// variáveis do oponente
let xRaquete2 = 585;
let yRaquete2 = 150;

// movimento raquete oponente
let velocidadeyoponente;

// placar do jogo
let meuspontos = 0
let pontosoponente = 0

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

function draw() {
  background(0, 0, 50);
  bolinha()
  movimentobolinha()
  colisaoborda()

  raquete1()
  movimentoraquete1()
  //colisaoraquete()
  raquete2()
  movimentoraquete2()
  colisaoraquetebiblioteca(xRaquete, yRaquete)
  colisaoraquetebiblioteca(xRaquete2, yRaquete2)

  placar()
  pontos()
}

function raquete1() {
  rect(xRaquete, yRaquete, LarguraRaquete, AlturaRaquete)
}

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

function raquete2() {
  rect(xRaquete2, yRaquete2, LarguraRaquete, AlturaRaquete)
}

function movimentoraquete2(){
  velocidadeyoponente = yBolinha - yRaquete2 - LarguraRaquete / 2 - 89
  yRaquete2 += velocidadeyoponente

}

function bolinha(){
  circle(xBolinha, yBolinha, diametro);}

function movimentobolinha(){
  xBolinha += velocidadexBolinha
  yBolinha += velocidadeyBolinha}

function colisaoborda(){
   if (xBolinha + raio> width||
    xBolinha - raio< 0){

    velocidadexBolinha *= -1
  }

  if (yBolinha + raio> height||
    yBolinha - raio< 0){

    velocidadeyBolinha *= -1
  }
}

function colisaoraquete() {
    if (xBolinha - raio < xRaquete + LarguraRaquete &&
        yBolinha - raio < yRaquete + AlturaRaquete &&
        yBolinha + raio > yRaquete) {
        velocidadexBolinha *= -1;
    }
}
function colisaoraquetebiblioteca(x, y){    
colidiu = 
  hit = collideRectCircle(x, y, LarguraRaquete, AlturaRaquete, xBolinha, yBolinha, raio);
  if (colidiu){
    velocidadexBolinha *= -1;
  }  
}
function placar(){
  fill (325, 210, 0)
  text(meuspontos, 250, 26);
  text(pontosoponente, 350, 26)
}

function pontos(){
  if (xBolinha > 590){
    meuspontos += 1;
  }
  if (xBolinha < 10){
    pontosoponente +=1;
  }
}

Se alguém puder me ajudar entender como resolver isso por favor!

Muito obrigado.

2 respostas
solução!

Oi, Diego

Verifique está solução

Possibilitando o erro da raquete do oponente

Obrigado, Luis! :)