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

Dúvida sobre função voltaAtorParaPosicaoInicial();

Olá!

Por que a função voltaAtorParaPosicaoInicial(); não precisa ser declarada no sketch.js?

2 respostas
solução!

Oi Willder, como você está?

Ótima pergunta!

Quando declaramos uma função dentro de draw(), ela será executada o tempo todo em que nosso jogo estiver funcionando, pois estará no lugar que chamamos de escopo global. Sendo assim, a vaquinha estaria presa no valor 366 de y, sem poder se movimentar.

Vamos relembrar como essa função é construída:

function voltaAtorParaPosicaoInicial(){
  yAtor = 366;
}

E ela aparece novamente, sendo declarada, apenas no momento em que a vaquinha chega ao outro lado da rua e marca um ponto:

function marcaPonto(){
  if (yAtor < 15){
    meusPontos += 1;
    somDoPonto.play();
    voltaAtorParaPosicaoInicial();
  }
}

Se a posição y da vaquinha é menor do que 15, um ponto será marcado no placar e ela voltará ao ponto de partida, pronta para a próxima rodada. Ela é declarada em uma condição que está no escopo de outra função, que, por sua vez, está declarada no escopo global e só será executada quando o parâmetro dentro do if for verdadeiro.

Assim, o y da vaquinha só terá esse valor em um pequeníssimo momento. E em seguida já poderá se movimentar novamente.

Espero ter ajudado, Will!

Se ficou alguma dúvida, estou por aqui.

Abração!

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

Muito obrigado, Larissa!