Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

10
respostas

ALURA INCAPACIDADA DE RESPONDER QUALQUER DUVIDA!

Então é eu consegui jogar o código compartilhado da minha biblioteca e ele foi executado de forma adequada, só que quando eu coloco a raquete do meu oponente, o mesmo começa a dar erro e não consigo dar andamento na minha jornada.

10 respostas

Oi Igor, consegue jogar seu código aqui? Assim conseguimos te ajudar melhor :)

Nesse código que você passou está com syntax error devido a algumas chaves sobrando no final. Após essa correção, adicionei a raquete do oponente e criei uma pequena lógica para movimentá-la e está se comportando normalmente.

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


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

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

let colidiu = false;

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

function draw() {
  background(0);
  mostraBolinha ();
  movimentaBolinha ();
  verificaColisaoBorda();
  mostraRaquetes();
  movimentaMinhaRaquete ();
  movimentaRaqueteOponente();
  //verificaColisaoRaquete ();
  colisaoMinhaRaqueteBiblioteca ();
}


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 mostraRaquetes (){
  rect(xRaquete, yRaquete, raqueteComprimento, raqueteAltura);
  rect(xRaqueteOpo, yRaqueteOpo, raqueteComprimento, raqueteAltura);
}


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

  if (keyIsDown(DOWN_ARROW)) {
    yRaquete += 10;
  }
}


function movimentaRaqueteOponente() {
  yRaqueteOpo = yBolinha
}

function colisaoMinhaRaqueteBiblioteca() {
    collideRectCircle(200, 200, 100, 150, mouseX, mouseY, 100);
}

Se ficou alguma dúvida, manda aqui de novo que eu te ajudo.

Mas eu já tinha simplificado o código como no video, eu copio esse código e da o mesmo erro quando eu vou simplificar.

Mas eu já tinha simplificado o código como no video, eu copio esse código e da o mesmo erro quando eu vou simplificar.

Mas eu já tinha simplificado o código como no video, eu copio esse código e da o mesmo erro quando eu vou simplificar.

Mas eu já tinha simplificado o código como no video, eu copio esse código e da o mesmo erro quando eu vou simplificar.//variáveis da bolinha let xBolinha = 300; let yBolinha = 200; let diametro = 15; let raio = diametro / 2;

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

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

let colidiu = false;

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

function draw() { background(0); mostraBolinha (); movimentaBolinha (); verificaColisaoBorda(); mostraRaquetes(); movimentaMinhaRaquete (); movimentaRaqueteOponente(); //verificaColisaoRaquete (); colisaoMinhaRaqueteBiblioteca (); }

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 mostraRaquetes (){ rect(xRaquete, yRaquete, raqueteComprimento, raqueteAltura); rect(xRaqueteOpo, yRaqueteOpo, raqueteComprimento, raqueteAltura); }

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

if (keyIsDown(DOWN_ARROW)) { yRaquete += 10; } }

function movimentaRaqueteOponente() { yRaqueteOpo = yBolinha }

function colisaoMinhaRaqueteBiblioteca() { collideRectCircle(200, 200, 100, 150, mouseX, mouseY, 100); }

A colisão não existe com a raquete do oponente, tenho um erro é possível vocês ajudarem!? Estou desesperado, estou me jogando aqui como uma terapia não aguento mais dar erros e erros, custa passar a informação e me ajudar por completo? Por favor.

Meu e o pior é algo tão simples porque comigo não esta dando certo???

Fala Igor, tudo bem? O código que você colou aqui está com problema no fechamento das chaves novamente. Além disso, você diz que não existe a colisão com a raquete do oponente, você não criou as funções para isso. Você precisa criar a função verificaColisaoRaquete(x,y);

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

Veja no exemplo do professor: https://cursos.alura.com.br/course/pong-javascript/task/56108

Até mais!