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

aparecendo isso: ReferenceError: collideRectCircle is not defined

Hoje eu atava na aula de programação na aula 3, vídeo 6, a parte em que vamos importar o código de verificação de colisão da bolinha com a raquete, mas depois de importar a biblioteca e colocar o código apareceu esse erro: ReferenceError: collideRectCircle is not defined.

ja coloquei o nome p5collide2d.js no index mas ainda n foi. não sei o que deu de errado.

//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 raqueteComprimento = 10;
let raqueteAltura = 90;

let colidiu = false;

//variáveis do oponente
let xRaqueteOponente = 585;
let yRaqueteOponente = 150;
let velocidadeYOponente;

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

function draw() {
  background(0);
  mostraBolinha();
  movimentaBolinha();
  verificaColisaoBorda();
  mostraRaquete(xRaquete, yRaquete);
  movimentaMinhaRaquete();
  //verificaColisaoRaquete();
  mostraRaquete(xRaqueteOponente, yRaqueteOponente);
  movimentaRaqueteOponente();
  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 mostraRaquete(x,y){
  rect(x, y, 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;
  }
}

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

function colisaoMinhaRaqueteBiblioteca(){
  colidiu = 
collideRectCircle(xRaquete, yRaquete, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, raio);
  if (colidiu){
     velocidadeXBolinha *= -1;
  }
}
6 respostas

Esse é como esta o Index.html:

<!DOCTYPE html>
<html lang="en">
  <head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/addons/p5.sound.min.js"></script>
    <link rel="stylesheet" type="text/css" href="style.css">
    <meta charset="utf-8" />

  </head>
  <body>
    <main>
    </main>
    <script src="sketch.js"></script>
    <script src="p5.collide2d.js"></script>
  </body>
</html>

o erro esta na hora de importar seu código "p5.collide2d.js", copiei esse codigo q vc pos ai, e tava dando o mesmo erro, deletei seu arquivo p5.collide2d.js e coloquei o meu, fiz a configuração e o jogo rodo normal, pode ser q seu arquivo esteja corrompido. Se vc poder compartilhar o link do seu progeto ficara mais facil lhe ajudar! Aguardo o link do seu projeto

https://editor.p5js.org/RicCk/sketches/OhHsG9bLl

aqui esta o link do projeto, e desde ja muito obrigado!

Cara, pelo q percebi o erro realmente esta no seu p5.collide2d.js. observei a descrição, esperimenta deletar e baixar novamente o p5.collide2d. e faz um teste, creio q ira resolver o problema, e pra adiantar no processo de colidir nas duas Raquetes, copia esse codigo e põe lá. // funções do draw colisaoMinhaRaqueteBiblioteca(xRaquete, yRaquete); colisaoMinhaRaqueteBiblioteca(xRaqueteOponente,yRaqueteOponente);

e poe a sua função assim: function colisaoMinhaRaqueteBiblioteca(x, y){ colidiu = collideRectCircle(x, y, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, raio); if (colidiu){ velocidadeXBolinha *= -1 } }

dessa forma vc ira verificar a colisao de ambas as raquetes, mas faz ai o teste de baixar um novo p5.collide2d.js. o seu falta uma pontuação, creio q isso possa ter criado esse problema, faz o teste ai e me diz se funciono

solução!

Oi, blz? Pra funcionar, apenas retire o ponto no nome do p5.clloide2d.js do seu ondex.html.

então, vc só colocou com a sintaxe diferente, vc deve usar igual ao arquivo. Porém, no seu arquivo é que esta erado, no index está certo. Acho que seria uma boa prática, vc alterar o arquivo para o nome certo!!!

Boa sorte!!

confira!!!

obrigado pela informação romeu, eu acreditava q o erro era a escrita p5collide2d.js. observei q estavam diferentes e pedi pra pessoa baixar novamente o arquivo, porem sua resposta é muito util, pois agora sei q nao preciso baixar dnovo, é necessario só alterar a escrita do index q o problema ja estara resolvido. desde já grato pela força, ajudou nosso colega e me ajudou tbm, não tive esse problema, mas adquiri uma nova e boa informação.