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

a raquete do oponente não se move

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

//variáveis da raquete let xRaquete = 5; let yRaquete = 150; let raqueteComprimento = 10; let raqueteAltura = 90;

//variaveis raquete oponente let xRaqueteOponente = 585; let yRaqueteOponente = 150; let velocidadeYOponente;

//velocidade da bolinha let velocidadeXBolinha = 6; let velocidadeYBolinha = 6;

let colidiu = false;

//variáveis placar do jogo let meusPontos = 0; let pontosOponente = 0;

//variáveis sons do jogo let ponto; let raquetada; let trilha;

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(); movimentaBolinha(); verificaColisaoBorda(); mostraRaquete(); movimentaMinhaRaquete(); verificaColisaoRaquete(xRaquete, yRaquete); mostraRaqueteOponente(); //movimentaRaqueteOponente(); verificaColisaoRaquete(xRaqueteOponente, yRaqueteOponente); 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() { rect(xRaquete, yRaquete, raqueteComprimento, raqueteAltura); }

function mostraRaqueteOponente() { rect(xRaqueteOponente, yRaqueteOponente, raqueteComprimento, raqueteAltura); }

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

function verificaColisaoRaquete() { if (xBolinha - raio < xRaquete + raqueteComprimento && yBolinha - raio < yRaquete + raqueteAltura && yBolinha + raio > yRaquete) { velocidadeXBolinha *= -1; raquetada.play(); } }

function verificaColisaoRaquete(x, y) { colidiu = collideRectCircle(x, y, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, raio); if (colidiu) { velocidadeXBolinha *= -1; raquetada.play();

}

}

function movimentaRaqueteOponente() { velocidadeYOponente = yBolinha - yRaqueteOponente - raqueteComprimento / 2 - 30; yRaqueteOponente += velocidadeYOponente }

function incluiPlacar() { stroke(255); textSize(20); textAlign(CENTER); fill(color(255, 140, 0)); rect(150, 10, 40, 20); fill(255); text(meusPontos, 170, 26); fill(color(255, 140, 0)); rect(450, 10, 40, 20); fill(255); text(pontosOponente, 470, 26); }

function marcaPonto() { if(xBolinha > 590) { meusPontos += 1; ponto.play(); } if(xBolinha < 10) { pontosOponente += 1; ponto.play(); } }

3 respostas

Olá, Dandara! Tudo bem contigo?

Posso te pedir um favor? ;-)

No seu p5js, menu file, entre em share e copie o link do edit e poste aqui para que possamos ajudar!!!

Assim podemos olhar dentro do seu código e fazer alguns testes

Ficamos no aguardo, Dandara!

https://editor.p5js.org/Dandara/sketches/yhddlEtm-

Favor atendido Cássio....

solução!

Olá, Dandara! ;-)

Vi que na sua função function draw() a outra função que movimenta a raquete está comentada

//movimentaRaqueteOponente();

basta descomentar e seu projeto roda normalmente!

Essa parte completa ficará dessa formas

function draw() {
  background(0);
  mostraBolinha();
  movimentaBolinha();
  verificaColisaoBorda();
  mostraRaquete();
  movimentaMinhaRaquete();
  verificaColisaoRaquete(xRaquete, yRaquete);
  mostraRaqueteOponente();
  movimentaRaqueteOponente();
  verificaColisaoRaquete(xRaqueteOponente, yRaqueteOponente);
  incluiPlacar();
  marcaPonto();  
}

Espero ter ajudado, Dandara!

Nos vemos por aqui!

Um abraço e até breve!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software