1
resposta

SyntaxError: Unexpected identifier 'colidiu' at /sketch.js:25:5

Olá pessoal, estou no meio do curso e preciso entender o porque do erro "SyntaxError: Unexpected identifier 'colidiu' at /sketch.js:25:5" estar aparecendo no meu código.

O problema começou quando eu comecei a trabalhar na função:

  function movimentaRaqueteOponente(){
    velocidadeYOponente = yBolinha - yRaqueteOponente - wRaquete /2 -30,yRaqueteOponente += velocidadeYOponente 

  }

Vou colar todo o meu código aqui para ficar mais fácil de explicar:

  //variavelbolinha
let xBolinha = 300;
let yBolinha = 200;
let diametro = 20;
let raio = diametro / 2 ;

//velocidadebolinha
let velocidadeXBolinha = 5;
let velocidadeYBolinha = 5;

//variavelraqueteplayer

let xRaquete = 5;
let yRaquete = 150;
let wRaquete = 10;
let hRaquete = 80;

//variaveis do oponente
let xRaqueteOponente = 585;
let yRaqueteOponente = 150;
let wRaqueteOponente = 10;
let hRaqueteOponente = 80;
let velocidadeYOponente =

let colidiu = false;


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

function draw() {
  background(0);
  mostraBolinha();
  movimentaBolinha();
  colidecomaBorda();
  mostraraquete(xRaquete,yRaquete);
  movimentaraquetePlayer();
  verificacolisaoraquete();
  colisaoraqueteplayer();
  mostraraquete(xRaqueteOponente,yRaqueteOponente);
  movimentaRaqueteOponente(),

function mostraBolinha(){
  circle(xBolinha,yBolinha,diametro);



}

function movimentaBolinha (){
  xBolinha += velocidadeXBolinha;
  yBolinha += velocidadeYBolinha;

}

  function colidecomaBorda (){


 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,wRaquete,hRaquete);

  }

  function movimentaraquetePlayer (){

    if (keyIsDown(UP_ARROW)){

      yRaquete -= 10;
    }

    if (keyIsDown(DOWN_ARROW)){

      yRaquete += 10;
    }
  }

  function movimentaRaqueteOponente(){
    velocidadeYOponente = yBolinha - yRaqueteOponente - wRaquete /2 -30,yRaqueteOponente += velocidadeYOponente 

  }


  function verificacolisaoraquete (){

    if (xBolinha - raio < xRaquete + wRaquete && yBolinha - raio < yRaquete + hRaquete && yBolinha + raio > yRaquete){velocidadeXBolinha *= -1;}
    }

  function colisaoraqueteplayer (){

    colidiu =
      collideRectCircle(xRaquete,yRaquete,hRaquete,wRaquete,xBolinha,yBolinha,raio);

    if (colidiu){
      velocidadeXBolinha *= -1
    }
  }


  }
1 resposta

Olá, Higor! Tudo certo por aí?

Agradeço a paciência em aguardar uma resposta.

Antes de iniciarmos, gostaria de avisar que modifiquei seu tópico com objetivo de alterar a formatação do código. Para fazer isso, nós precisamos seguir este passo a passo:

  • Selecione e copie o código que será compartilhado;
  • Abra a postagem do fórum que será enviada o código;
  • Nas ferramentas do campo O que você acha disso? clique na sétima ferramenta de nome Inserir bloco de código ou pressione CTRL+ALT+C;
  • Cole o código que será enviado entre os três acentos graves de abertura e fechamento.

Vamos agora para o seu programa?

O erro que está aparecendo no console do p5.js está relacionado a alguns fatores, tais como:

  • Na declaração da variável velocidadeYOponente na parte de “variáveis do oponente”, há um sinal de igual ao invés de um ponto e vírgula.

O sinal de igual (=) tem um sentido de atribuição nas linguagens de programação e, na maioria das vezes, o utilizamos para inicializar uma variável. Enquanto isso, o ponto e vírgula (;) é usado para determinar o término de um comando — como ainda não queremos passar valores à variável velocidadeYOponente, apenas a declaramos e finalizamos com este sinal de pontuação.

Fazendo isso, chegamos em algo assim:

let velocidadeYOponente;
  • Existe uma vírgula após a chamada da função movimentaRaqueteOponente(), a qual está dentro da função draw(). Este sinal de pontuação não é necessário, então podemos removê-lo.
  • O bloco de código da função draw() não está sendo fechado pelo símbolo de fechamento de chaves. Em contrapartida, há uma chaves a mais no final do seu programa.

Fazendo as devidas alterações, chegamos no seguinte resultado:

//variavelbolinha
let xBolinha = 300;
let yBolinha = 200;
let diametro = 20;
let raio = diametro / 2 ;

//velocidadebolinha
let velocidadeXBolinha = 5;
let velocidadeYBolinha = 5;

//variavelraqueteplayer

let xRaquete = 5;
let yRaquete = 150;
let wRaquete = 10;
let hRaquete = 80;

//variaveis do oponente
let xRaqueteOponente = 585;
let yRaqueteOponente = 150;
let wRaqueteOponente = 10;
let hRaqueteOponente = 80;
let velocidadeYOponente;

let colidiu = false;

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

function draw() {
    background(0);
    mostraBolinha();
    movimentaBolinha();
    colidecomaBorda();
    mostraraquete(xRaquete,yRaquete);
    movimentaraquetePlayer();
    verificacolisaoraquete();
    colisaoraqueteplayer();
    mostraraquete(xRaqueteOponente,yRaqueteOponente);
    movimentaRaqueteOponente()
}

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

function movimentaBolinha (){
    xBolinha += velocidadeXBolinha;
    yBolinha += velocidadeYBolinha;
}

function colidecomaBorda (){
    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,wRaquete,hRaquete);
}

function movimentaraquetePlayer (){

    if (keyIsDown(UP_ARROW)){

        yRaquete -= 10;
    }

    if (keyIsDown(DOWN_ARROW)){

        yRaquete += 10;
    }
}

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

function verificacolisaoraquete (){
    if (xBolinha - raio < xRaquete + wRaquete && yBolinha - raio < yRaquete + hRaquete && yBolinha + raio > yRaquete){velocidadeXBolinha *= -1;}
}

function colisaoraqueteplayer (){
    colidiu = collideRectCircle(xRaquete,yRaquete,hRaquete,wRaquete,xBolinha,yBolinha,raio);

    if (colidiu){
        velocidadeXBolinha *= -1
    }
}

Caso tenha notado, seu código contém ainda uma outra pequena modificação. Mas qual é ela?

Quando estamos desenvolvendo um código, uma boa prática a ser levada durante este processo é a indentação. Ao indentar nosso programa, organizamos a hierarquia dos comandos e melhoramos a visualização de blocos de código. Podemos observar a indentação a partir dos espaços dados no lado esquerdo do código — para fazer isso, basta utilizar a tecla tab do seu teclado.


Fico à disposição para te auxiliar no que for preciso ao longo dos seus estudos. Portanto, lembre-se que você pode sempre contar com o fórum.

Abraços, Higor!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado! ✓.