3
respostas

[Bug] Erro no "Movimenta Ator"

Quando O Guilherme falou do erro do "ARROw", apareceu esta mensagem abaixo. Não sei o que fazer.

ReferenceError: movimentaAtor is not defined

p5.js says: [sketch.js, line 26] "movimentaAtor" is not defined in the current scope. If you have defined it in your code, you should check its scope, spelling, and letter-casing (JavaScript is case-sensitive).

3 respostas

Oi Dani! Tudo bem contigo?

Esse erro geralmente acontece quando há algo errado na declaração da função.

Confira se sua função está exatamente como essa:

function movimentaAtor(){
  if (keyIsDown(UP_ARROW)){
    yAtor -= 2;
  }
  if (yAtor < 366 && keyIsDown(DOWN_ARROW)){
    yAtor += 2;
  }
}

E confira também se ela foi devidamente chamada dentro da função draw(), no arquivo sketch.js:

function draw() {
  background(imagemDaEstrada);
  mostraAtor();
  mostraCarro();  
  movimentaCarro();
  movimentaAtor();

Caso o erro persista, peço que compartilhe seu código para que eu possa te ajudar a investigar. Para realizar o compartilhamento, podemos seguir os passos abaixo:

  • Localizar a barra superior com os itens “File”, “Edit”, “Sketch”, e “Help” (em Português, as opções seriam: “Arquivo”, “Editar”, “Esboço” e “Ajuda”, respectivamente);
  • Clicar em “File”;
  • Selecionar a opção “Share” ou “Compartilhar”;
  • Copiar o link da terceira opção da lista (de cima para baixo);
  • Colá-lo em seu tópico do fórum.

Aguardo seu retorno!

Forte abraço.

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

Oi Larissa, obrigado pelo retorno. Têm algo mais acontecendo..

Segue o arquivo que pediu:

https://editor.p5js.org/DanielPamplona/sketches/17MyIVoUo

Oi Daniel!

Obrigada por enviar, encontrei o problema. Perceba que a função movimentaCarro() está com o fechamento ( } ) depois da função movimentaAtor():

function movimentaCarro(){
  xCarro -= 2;

function movimentaAtor(){
if (keyIsDown(UP_ARROW)){
    yAtor -= 3;
  }
}
}

Assim, a função movimentaAtor() só foi definida dentro do escopo de movimentaCarro()e não pode ser chamada no âmbito geral do código. Para que seu jogo funcione, faça essa alteração:

function movimentaCarro(){
  xCarro -= 2;
  }

function movimentaAtor(){
if (keyIsDown(UP_ARROW)){
    yAtor -= 3;
  }
}

Bons estudos, Dani! Conte sempre com o fórum.

Abraços.

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