Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Meu oponente sempre acerta ou sempre erra

Estou tentando fazer algumas mudanças pessoais no programa, para treinar, porém não estou conseguindo achar uma forma de randomizar os movimentos da raquete do oponente, só consigo ajustá-lo para acertar todas ou errar todas as defesas, pode me ajudar?

//Variáveis da bolinha
let xBolinha = 300;
let yBolinha = 200;
let diametro = 20;
let raio = diametro/2;

//Variáveis das Raquetes
let altura = 100;
let largura = 10;
let xRaquete = 5;
let yRaquete = 150;
let xRaqueteOponente = 585;
let yRaqueteOponente = 150;
let atraso = 0;

//Variáveis de Movimento
let velocidadeXBolinha = 6;
let velocidadeYBolinha = 6;
let velocidadeYOponente;

//Placar
let meusPontos = 0;
let pontosOponente = 0;

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

function draw() {
  background(0);
  mostraBolinha();
  movimentaBolinha();
  verificaColisaoBorda();
  mostraRaquete(xRaquete,yRaquete);
  movimentaRaquete();
  verificaColisaoRaquete();
  mostraRaquete(xRaqueteOponente,yRaqueteOponente);
  movimentaOponente();
  verificaColisaoOponente();
  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,largura,altura)
}

function movimentaRaquete(){
  if(keyIsDown(UP_ARROW))
    yRaquete -= 7;
  if(keyIsDown(DOWN_ARROW))
    yRaquete += 7;
}

function verificaColisaoRaquete(){
  if (xBolinha - raio < xRaquete + largura && yBolinha - raio < yRaquete + altura && yBolinha + raio > yRaquete){
   velocidadeXBolinha *= -1;
 }
}

function movimentaOponente(){
  velocidadeYOponente = yBolinha -yRaqueteOponente -largura/ 2 - 120;
  yRaqueteOponente += velocidadeYOponente;
}

function verificaColisaoOponente(){
  if (xBolinha + raio > xRaqueteOponente && yBolinha - raio < yRaqueteOponente + altura && yBolinha + raio > yRaqueteOponente){
   velocidadeXBolinha *= -1;
 }
}

function incluiPlacar(){
  textAlign(CENTER);
  fill(255);
  text(meusPontos, 200, 26);
  text(pontosOponente, 400, 26);
}

function marcaPonto(){
 if( xBolinha > 590){
   meusPontos += 1;
 }
  if( xBolinha < 10){
   pontosOponente += 1;
 }
}
1 resposta
solução!

Consegui mudar a movimentação do oponente para que agora seja aleatório!

function movimentaOponente(){
  if(yBolinha > yRaqueteOponente +50){
    yRaqueteOponente += velocidadeYOponente;}
  if(yBolinha < yRaqueteOponente+50){
    yRaqueteOponente -= velocidadeYOponente;}
}