1
resposta

Porque não precisamos colocar a function no draw?

Em jogos clássicos parte 2, tem duas funções (fuctions) que não são declaradas no Draw e mesmo assim funcionam, as funcões (functions) são:

passouTodaATela(); Colidiu();

Alguém sabe me explicar o porquê delas não precisarem entrar no draw para funcionar?

1 resposta

Oi, Jackeline! Tudo bem?

Desde já, peço desculpas pela demora em retornar.

Diferentemente das outras funções do nosso jogo, passouTodaATela() e colidiu() acontecem somente em momentos específicos e, por esse motivo, não precisam estar em draw(). Para compreender melhor isso, vamos analisar o trecho de código abaixo:

function voltaPosicaoInicialDoCarro(){
  for (let i = 0; i < imagemCarros.length; i++){
    if (passouTodaATela(xCarros[i])){
      xCarros[i] = 600;
    }
  }
}

A função voltaPosicaoInicialDoCarro(), por exemplo, é chamada dentro de draw() , pois a ação que ela realiza (verificar se a posição do carro ultrapassou o limite e, se sim, retorná-lo para o início da estrada) é constante e não depende de outros fatores. Por outro lado, passouTodaATela() não precisa estar dentro de draw(), tendo em vista que já é chamada em voltaPosicaoInicialDoCarro() — fazendo com que, de maneira implícita, ela também faça parte de draw().

Na programação, é comum segmentar atividades para tornar o desenvolvimento mais consistente e de fácil compreensão. Logo, caso quiséssemos, poderíamos unir as atividades das duas funções em uma só função, a qual estaria em draw() . Contudo, dessa forma perderíamos o poder que o Javascript nos proporciona.

Assim, quando uma função não é chamada em draw()e mesmo assim faz parte do nosso jogo, possivelmente ela estará atrelada a outra função, como no caso que vimos acima.

Jackeline, espero que tenha compreendido minha explicação. Fico à disposição para ajudá-la caso surjam outras dúvidas.

Forte abraço e bons estudos!

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