Olá!
Por que a função voltaAtorParaPosicaoInicial(); não precisa ser declarada no sketch.js?
Olá!
Por que a função voltaAtorParaPosicaoInicial(); não precisa ser declarada no sketch.js?
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!
Muito obrigado, Larissa!