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

Erro CollideCircle com a variavél "Colidiu"

Meu projeto está apresentando o seguinte erro : "ReferenceError: can't access lexical declaration `colidiu' before initialization (sketch: line 85)"

//Variaveis 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 Raquete
let = xRaquete = 5
let = yRaquete = 150
let = raqueteComprimento = 10
let = raqueteAltura = 90

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

let colidiu = false

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

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


}

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 colisaoMinhaRaqueteBiblioteca (){
  colidiu = collideRectCircle(xRaquete,yRaquete,raqueteComprimento,raqueteAltura,xBolinha,yBolinha,raio)
  if(colidiu){
    velocidadeXBolinha *= -1}
}

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

Tentei as soluções do fórum porém não deu certo

2 respostas

Segue como está o código no meu index.html

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

  </head>
  <body>
      <script src="sketch.js"></script>
      <script src="p5.collide2d.js"></script>
 </body>
</html>
solução!

Amanda, boa tarde!

Nas linhas abaixo:

let = velocidadeXBolinha = 6
let = velocidadeYBolinha = 6


//variáveis Raquete
let = xRaquete = 5
let = yRaquete = 150
let = raqueteComprimento = 10
let = raqueteAltura = 90

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

A declaração das variáveis está incorreta, para declarar a variável nós usamos a seguinte sintaxe:

let nomeDaVariavel = valor;

Não possui um = depois de let

Tente alterar e ver se o erro permanece, caso tenha ajudado não se esqueça de marcar como solucionado para alcançar mais alunos!

Espero ter ajudado e bons estudos!