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

Erro no código da biblioteca e bolinha atravessando a raquete

Boa noite, Primeiramente minha bolinha atravessa a raquete quando vou rebater nos cantos, tanto superiores e inferiores, por enquanto ainda estou na minha raquete. E na parte 3.4 que é a importação da biblioteca para o código, sigo tudo direitinho que foi feito durante a aula, mas quando vou executar o jogo aparece essa mensagem de erro:

▶️ Error at line 70 in "colisaoMinhaRaqueteBiblioteca" in cc23c8dc-0017-4fbf-aa7e-e661a3791a00 (blob:https://preview.p5js.org/cc23c8dc-0017-4fbf-aa7e-e661a3791a00:70:51)

E eu não sei o que devo fazer.

2 respostas
solução!

Olá, Catharina! Tudo bem com você?

Não consigo acessar o seu projeto, aparece uma mensagem de "Not found." (não encontrado). Se você puder compartilhar novamente eu agradeceria bastante, pois isso ajuda na visualização do problema.

De qualquer forma, um equívoco bastante comum é escrevermos os nomes da variáveis de forma diferente ou então não fecharmos corretamente o escopo das funções ou condições. Vou deixar o código abaixo para você conferir se está semelhante ao seu, tudo bem?

//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;

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

function draw() {
  background(0);
  mostraBolinha();
  movimentaBolinha();
  verificaColisaoBorda();
  mostraRaquete();
  movimentaMinhaRaquete();
  verificaColisaoRaquete();
}

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 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;
  }
}

Verifique também se você está fazendo a referência da biblioteca collide no seu arquivo index.html. A estrutura ficará assim:

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

Espero que as informações tenham ajudado, fico à disposição.

Um forte abraço e bons estudos!

Sim, foi isso que ocorreu, acabei que escrevi uma variável errado. Muito obrigada.