Opa Ronaldo.
Boa pergunta!
Tudo depende do objetivo das variáveis que estamos declarando, como, por exemplo, no caso das variáveis dentro do escopo (local de onde se encontra a variável) da função verificaColisaoMinhaRaq()
, seu objetivo é armazenar valores já existentes em outras variáveis e que são modificados ao decorrer do código.
A partir disso temos duas possíveis soluções, considerando que queremos verificar a colisão, precisamos de valores exatos do momento que ocorrer o toque entre a bolinha e raquete. Por conta disso, temos que atribuir o valor e verificar a colisão da bolinha somente nesse ponto específico.
No caso da aula, decidimos declarar as variáveis e atribuir o valor no momento da sua execução, porém, poderíamos ter declarado as variáveis fora do escopo da função com um valor vazio e posteriormente atribuir os valores:
let esquerdaBola;
let superiorBola;
let inferiorBola;
let direitaMinhaRaq;
let superiorMinhaRaq;
let inferiorMinhaRaq;
function verificaColisaoMinhaRaq(){
esquerdaBola = xBola - raio;
superiorBola = yBola - raio;
inferiorBola = yBola + raio;
direitaMinhaRaq = xMinhaRaquete + compMinhaRaquete;
superiorMinhaRaq = yMinhaRaquete;
inferiorMinhaRaq = yMinhaRaquete + altMinhaRaquete;
O resultado é o mesmo. As variáveis são declaradas e puxadas de acordo com sua necessidade, como essas variáveis só seriam usadas dentro da função verificaColisaoMinhaRaq()
, não houve necessidade de declará-las fora dela.
Espero ter esclarecido suas dúvidas! Deixo abaixo a recomendação caso queira se aprofundar no assunto um artigo sobre o assunto:
Qualquer dúvida, fico à disposição.
Tenha um bom dia e bons estudos.