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!