Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Dúvida função "passouTodaATela"

Olá, Tenho a seguinte dúvida:

A função "passouTodaATela" não é declarada em draw () porque ela está dentro da função "voltaPosiçãoInicial" ?

Obrigado.

1 resposta
solução

Oi Sérgio, beleza?

Toda função deve conter o princípio de responsabilidade única. Neste caso a função "passouTodaATela" é para verificar se o carro está dentro do limite de tela. Então por exemplo, se eu tenho um tamanho de tela 100x100 e o carro está na posição 120, quer dizer que o carro passou do limite de tela permitido, certo ?Daí, quando ocorrer a ultrapassagem deste limite, o carro irá voltar a posição inicial.

Portanto, a função "passouTodaATela" está contida dentro da função "voltaPosicaoInicialDoCarro", que por sua vez é chamada na função "movimentaCarro". E a função "movimentaCarro" é chamada na função draw() .

Sendo assim, pode-se perceber que indiretamente a função "passouTodaATela" é chamada na função "draw". Caso a mesma fosse chamada diretamente, o bloco de código da função "voltaPosicaoInicialDoCarro" teria que está dentro de draw(). Desta maneira, perderia o sentido de responsabilidade única da função draw() que é apenas desenhar os objetos na tela segundo uma posição X, pois ela também teria que fazer os cálculos para saber se o carro ultrapassou a tela ou não.

Espero que tenha ajudado. Bons estudos !