3
respostas

SyntaxError e ReferenceError.

Olá, pessoal!

Estou com duas dúvidas em relação ao meu código.

Primeira, estou tendo problemas em relação ao erro de sintaxe. "Uncaught SyntaxError: Unexpected end of input (sketch: line 189). Já tentei colocar várias chaves para fechar as funções e não deu certo em nenhuma das vezes.

Segunda, as funções incluirPlacar e marcaPonto, estão com erros de referência. "Reference Error: incluirPlacar is not defined." e "Reference Error: marcaPonto is not defined." Tentei escrever o código da mesma forma como está nos vídeos e não consegui superar estes erros de referência.

Segue link do código: https://editor.p5js.org/Lucassauro/sketches/GlbtZNC3

Obrigado!

3 respostas

Fala, Lucas! Tudo bem? Espero que sim!!!

Esse erro é por causa de algumas chaves{} que não foram inseridas acima.

Vamos lá!

A função draw não foi fechada

function draw() {
  background(10);

  mostraBolinha();
  movimentobolinha();
  colisãoBolinhaBorda();

  mostraRaquete(xRaquete, yRaquete);
  movimentaRaquete();  
  //colisãoRaqueteBolinha();

  mostraRaqueteOponente(xRaqueteOponente, yRaqueteOponente);
  movimentaRaqueteOponente();
  //colisãoRaqueteOponente();

  //colisãoRaqueteTeste();
  //colisãoRaqueteOponenteTeste();

  verificaColisãoRaquete(xRaquete, yRaquete);
  verificaColisãoRaquete(xRaqueteOponente, yRaqueteOponente);
  incluirPlacar();  
  marcaPonto();

Precisa fechá-la após o marcaPonto()

Nessa função também:

function movimentaRaqueteOponente(){
  velocidadeYOponente = yBolinha - yRaqueteOponente - alturaRaquete / 2 - 30;
  yRaqueteOponente += velocidadeYOponente + chanceErro
  calculaChanceErro();

Após o calculaChanceErro() também necessita uma chave fechando a função.

Vamos ao último:

function marcaPonto(){
  if (xBolinha > 590){
    meusPontos += 1;
    ponto.play();
  }

  if (xBolinha < 10){
    pontosOponente +=1;
    ponto.play();}
}

Nessa função, após o ponto.play() não é necessário uma chave e a que está em baixo está fechando a condicional if e está faltando outra para fechar a função marcaPonto().

Prontinho, Lucas! Faça essas alterações e verás que rodará perfeitamente.

Qualquer dúvida nos retorne.

Bons estudos e vamos em frente!!!

Muitíssimo obrigado pela resposta, Cássio! Com sua ajuda, consegui visualizar que as chaves não estavam fechadas nas referidas funções, de fato. Acredito que tenho dificuldade de enxergar estas coisas por não ter a visão treinada... hahaha.

No entanto, agora que os erros de sintaxe foram corrigidos, os erros de referencia surgiram.

Uncaught ReferenceError: colisãoRaqueteOponente is not defined (sketch: line 65)

Uncaught ReferenceError: incluirPlacar is not defined (sketch: line 72)

Uncaught ReferenceError: marcaPonto is not defined (sketch: line 73)

Não entendi o motivo deste erro, pensei que todas as referências estivessem devidamente definidas.

Agradeço desde já. Abraço!

Olá, Lucas!!!

O erro na linha 65 foi que você declarou a função como colisãoRaqueteOponenteTeste e chamou ela no draw como colisãoRaqueteOponente. Agora você escolhe se retira a palavra teste em um ou retira do outro, mas quando você alterar não esqueça de retirar o comentário da altura e largura da raquete do oponente.

Quando você retirar os comentários que eu citei acima, outros erros aparecerão. O que eu recomendo? Tente espelhar seu código com o código da aula! Pelo menos até pegar as sintáxes e elas ficarem bem nítidas p/ você. Depois disso, faça seus próprios jogos como teste para deixar o aprendizado mais sólido.

Mas se, mesmo assim, você travar(rs) nos procure por aqui!!!