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

[Dúvida] Identifier 'xBolinha' has already been declared

Olá Boa tarde, alguém pode me ajudar nesse erro. Meu cod. está igual ao do professor, mesmo assim aparece essa msg.

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

7 respostas

Olá, Natalia! Tudo certo?

Verifiquei seu código e observei que você esqueceu de inserir os operadores de OU, que são as duas pipes ||. Dessa forma o Javascript interpretou que você havia instanciado duas variáveis com o mesmo nome e gerou o erro. Vou deixar o código aqui com a correção.

//Variavéis da Bolinha
let xBolinha = 300;
let yBolinha = 200;
let diametro = 15;
let raio = diametro / 2

//Velocidade da Bolinha
let velocidadexBolinha = 6
let velocidadeyBolinha = 6

//Variavéis da raquete
let xRaquete = 5;
let yRaquete = 150;
let comprimentoraquete = 10;
let larguraraquete = 90;
let colidiu = false

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

function draw() {
  background(0);
  MostraBolinha()
  Verificacolisão()
  MovimentaBolinha()
  MostrarRaquete()
  MovimentaMinhaRaquete()
  //verificaColisaoRaquete()
  colidiuRaquete()
}

function MostraBolinha(){
  circle(xBolinha, yBolinha, diametro);
  }

function Verificacolisão(){
  if (xBolinha + raio > width || xBolinha - raio < 0) 
  {velocidadexBolinha *=-1}

  if (yBolinha + raio > height  || yBolinha - raio < 0)
  {velocidadeyBolinha *=-1}
  }

function MovimentaBolinha(){
  xBolinha += velocidadexBolinha
  yBolinha += velocidadeyBolinha
}

function MostrarRaquete(){
  rect (xRaquete, yRaquete, comprimentoraquete, larguraraquete)
}

function MovimentaMinhaRaquete (){
  if (keyIsDown(UP_ARROW)) {yRaquete -=10}
  if (keyIsDown(DOWN_ARROW)) { yRaquete +=10}
}

function verificaColisaoRaquete(){
  if (xBolinha - raio < xRaquete + comprimentoraquete 
  && yBolinha - raio < yRaquete + larguraraquete 
  && yBolinha + raio > yRaquete){
    velocidadeXBolinha *= -1;
  }
    }

function colidiuRaquete(){
    collideRectCircle(xRaquete, yRaquete, comprimentoraquete, larguraraquete, xBolinha, yBolinha, raio);
}

Olá, primeiramente obrigada por me ajudar, porém mesmo ao copiar seu codigo de resposta, apresenta o mesmo erro. Será que é alguma configuração do p5.?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Acredito que você não copiou corretamente ou não colou corretamente, pois seu código aparece com o mesmo erro anterior. Sem a pipe || na função verificaColisao

Tente novamente, vou colar o código mais uma vez. Tudo bem?

//Variavéis da Bolinha
let xBolinha = 300;
let yBolinha = 200;
let diametro = 15;
let raio = diametro / 2

//Velocidade da Bolinha
let velocidadexBolinha = 6
let velocidadeyBolinha = 6

//Variavéis da raquete
let xRaquete = 5;
let yRaquete = 150;
let comprimentoraquete = 10;
let larguraraquete = 90;
let colidiu = false

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

function draw() {
  background(0);
  MostraBolinha()
  Verificacolisão()
  MovimentaBolinha()
  MostrarRaquete()
  MovimentaMinhaRaquete()
  //verificaColisaoRaquete()
  colidiuRaquete()
}

function MostraBolinha(){
  circle(xBolinha, yBolinha, diametro);
  }

function Verificacolisão(){
  if (xBolinha + raio > width || xBolinha - raio < 0) 
  {velocidadexBolinha *=-1}

  if (yBolinha + raio > height  || yBolinha - raio < 0)
  {velocidadeyBolinha *=-1}
  }

function MovimentaBolinha(){
  xBolinha += velocidadexBolinha
  yBolinha += velocidadeyBolinha
}

function MostrarRaquete(){
  rect (xRaquete, yRaquete, comprimentoraquete, larguraraquete)
}

function MovimentaMinhaRaquete (){
  if (keyIsDown(UP_ARROW)) {yRaquete -=10}
  if (keyIsDown(DOWN_ARROW)) { yRaquete +=10}
}

function verificaColisaoRaquete(){
  if (xBolinha - raio < xRaquete + comprimentoraquete 
  && yBolinha - raio < yRaquete + larguraraquete 
  && yBolinha + raio > yRaquete){
    velocidadeXBolinha *= -1;
  }
    }

function colidiuRaquete(){
    collideRectCircle(xRaquete, yRaquete, comprimentoraquete, larguraraquete, xBolinha, yBolinha, raio);
}

De fato ao copiar e colar o pipe muda para &&, por algum motivo que eu não sei, mas fazendo a alteração manual, ainda aparece o mesmo erro.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Natalia, consigo observar que você não está logada em sua conta do p5.js. Dessa maneira você não irá conseguir salvar as modificações em seu projeto.

Primeiro faça o login, conserte os erros no código e salve o arquivo.

Fico no aguardo.

Bons estudos!

Deu certo!!! Parece que era mesmo o login, toda vez que desligo, ele desloga, não tinha reparado. Muito obrigada por toda a ajuda.

solução!

Que bom, Natalia! Agora tudo certo!

Qualquer coisa estamos por aqui!

Um abraço e bons estudo!