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

criando variavel erroOponente para alterar a posição Y da raquete do oponente

Criando uma variável e alterando seus valores conforme algum evento seja acionado (toque na minha raquete, ponto do oponente, toque na raquete do oponente), alterando assim o Y da raquete do oponente, fazendo com que a raquete do oponente tenha um comportamento diferente.

let xBolinha = 300;
let yBolinha = 200;
let diametroBolinha = 13;
let raioBolinha = diametroBolinha / 2

let movimentoX = 4;
let movimentoY = 3;

let xRaquete = 5;
let yRaquete = 150;
let comprimentoRaquete = 10;
let alturaRaquete = 70;

let xRaqueteOponente = 585;
let yRaqueteOponente = 150;

let meusPontos = 0;
let pontosOponente = 0;

let movimentoYRaquete;

let trilha;
let ponto;
let raquetada;

let erroOponente = 0;

function preload(){
  trilha = loadSound("trilha.mp3");
  ponto = loadSound("ponto.mp3");
  raquetada = loadSound("raquetada.mp3");
}

function setup() {
  createCanvas(600, 400);
  trilha.loop();
}

function draw() {
  background(0);
  mostraBolinha();
  xBolinha += movimentoX;
  yBolinha += movimentoY;
  verificaColisaoBorda()
  mostraRaquete(xRaquete, yRaquete);
  mostraRaquete(xRaqueteOponente, yRaqueteOponente)
  movimentaMinhaRaquete();
  colisaoMinhaRaquete();
  movimentaRaqueteOponente();
  colisaoRaqueteOponente();
  verificaPontos();
  mostraPlacar();

}

function mostraBolinha(){
  circle(xBolinha, yBolinha, diametroBolinha);
}

function verificaColisaoBorda(){
  if (xBolinha + raioBolinha > width || xBolinha - raioBolinha < 0){
    movimentoX *= -1
    ponto.play()
  }
  if (yBolinha + raioBolinha > height || yBolinha - raioBolinha < 0){
    movimentoY *= -1
  }
}

function mostraRaquete(x, y){
  rect(x, y, comprimentoRaquete, alturaRaquete);
}

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

function colisaoMinhaRaquete(){
  if (xBolinha - raioBolinha < xRaquete + comprimentoRaquete && yBolinha - raioBolinha < yRaquete + alturaRaquete && yBolinha + raioBolinha > yRaquete){
    movimentoX *= -1
    raquetada.play()
    erroOponente += 10
  }
}

function movimentaRaqueteOponente(){
  movimentoYRaquete = yBolinha - yRaqueteOponente - alturaRaquete / 2
  yRaqueteOponente += movimentoYRaquete - erroOponente
}

function colisaoRaqueteOponente(){
  if (xBolinha + raioBolinha > xRaqueteOponente && yBolinha + raioBolinha > yRaqueteOponente && yBolinha - raioBolinha < yRaqueteOponente + alturaRaquete){
    movimentoX *= -1
    raquetada.play()
    erroOponente -= 70;
  }
}

function verificaPontos(){
  if (xBolinha - raioBolinha < 0){
    pontosOponente += 1;
    erroOponente += 35
  }
  if (xBolinha + raioBolinha > width){
    meusPontos += 1

  }
}

function mostraPlacar(){
  fill(255)
  stroke(255)
  textAlign(CENTER)
  textSize(16)
  fill(color(0,0,255))
  rect(150,10,40,20)
  fill(255)
  text(meusPontos, 170, 25)
  fill(color(0,0,255))
  rect(450,10,40,20)
  fill(255)
  text(pontosOponente, 470, 25)
}
1 resposta
solução!

Boa, Matheus!

Valeu por compartilhar sua solução

Isso vai ajudar muito quem passar pelo curso e dar uma outra visão de como implementar outras formas

Mandou muito bem!

Qualquer dúvida nos procure

Um abraço e bons estudos