3
respostas

[Dúvida] Só eu achei confuso a explicação nesta aula ?

Na explicação/aula de como melhorar o código, a partir da função "volta a posição inicial" achei a explicação confusa, pouco didática e vazia. Faz isso pq faz. Return funciona assim pq faz assim .... Desculpa, mas acho necessário melhor desempenho e preparado para algumas explicações.

3 respostas

Oi Pamela. Eu também achei bem confusa, vi que até o professor estava se bagunçando nas explicações. Foi meio chato pois tive que ver a aula umas 10 vezes pra tentar entender, e só fui realmente entender quando li a transcrição do video... Ainda existem algumas dúvidas na minha cabeça, mas consegui compreender a maioria. A dica que eu dou é, se vc esta com muita dificuldade de entender a explicação pelo vídeo, de uma olhadinha na transcrição. Se mesmo assim nn entender o que ele disse vem aqui no forúm e veja se alguém mais tem o mesmo problema que o seu, e se tem alguma resposta. Ou se nn tiver ninguém com a mesma duvida, eu aconselho mais o servidor do discord deles do que o próprio fórum.

Explicação do ChatGPT

Variáveis:

As variáveis são espaços de armazenamento na memória do computador que podem conter valores. No código fornecido, existem quatro variáveis:

let xCarros = [600, 600, 600];
let yCarros = [40, 96, 150];
let velocidadeCarros = [2, 2.5, 3.2];
  • xCarros, yCarros e velocidadeCarros são arrays que armazenam múltiplos valores. xCarros armazena as coordenadas horizontais dos carros, yCarros armazena as coordenadas verticais dos carros e velocidadeCarros armazena as velocidades dos carros. Os índices dos arrays correspondem aos diferentes carros.

Funções:

Funções são blocos de código que realizam tarefas específicas. No código fornecido, existem cinco funções:

function mostraCarro() {
  for (let i = 0; i < imagemCarros.length; i = i + 1) {
    image(imagemCarros[i], xCarros[i], yCarros[i], 50, 40);
  }
}

function movimentaCarro() {
  for (let i = 0; i < imagemCarros.length; i = i + 1) {
    xCarros[i] -= velocidadeCarros[i];
  }
}

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

function passouTodaATela(xCarro) {
  return xCarro < -50;
}
  • mostraCarro(): Essa função é responsável por exibir os carros na tela. Ela usa um loop for para percorrer os arrays imagemCarros, xCarros e yCarros, e utiliza a função image() para desenhar as imagens dos carros na posição especificada.

  • movimentaCarro(): Essa função é responsável por movimentar os carros na tela. Ela utiliza um loop for para percorrer os arrays xCarros e velocidadeCarros, diminuindo a posição horizontal de cada carro de acordo com sua velocidade.

  • voltaPosicaoInicialDoCarro(): Essa função verifica se algum carro passou completamente pela tela (saiu do lado esquerdo) e, nesse caso, define a posição inicial do carro novamente como 600. Isso permite que os carros reapareçam na tela após saírem completamente.

  • passouTodaATela(xCarro): Essa função verifica se um carro passou completamente pela tela, com base em sua posição horizontal. Retorna true se o carro passou toda a tela (posição menor que -50) e false caso contrário.

Uso do for:

O for é uma estrutura de controle que permite executar um bloco de código repetidamente com base em uma condição. No código fornecido, o for é utilizado em três funções: mostraCarro(), movimentaCarro() e voltaPosicaoInicialDoCarro().

Exemplo do uso do for na função mostraCarro():

for (let i = 0; i < imagemCarros.length; i = i + 1) {
  image(imagemCarros[i], xCarros[i], yCarros[i], 50, 40);
}
  • A variável i é inicializada com o valor 0.
  • A condição i < imagemCarros.length verifica se o valor de i é menor que o tamanho do array imagemCarros.
  • O código dentro do for é executado repetidamente para cada valor de i.
  • Após cada iteração, a expressão i = i + 1 incrementa o valor de i em 1.

Uso do return:

O return é usado para especificar o valor retornado por uma função. No código fornecido, a função passouTodaATela(xCarro) usa o return da seguinte forma:

function passouTodaATela(xCarro) {
  return xCarro < -50;
}
  • A função recebe o parâmetro xCarro, que representa a posição horizontal de um carro.
  • A condição xCarro < -50 verifica se a posição do carro é menor que -50, ou seja, se o carro passou completamente pela tela.
  • Se a condição for verdadeira, a função retorna true. Caso contrário, retorna false.
  • O valor retornado pela função pode ser utilizado em outros trechos de código para tomar decisões ou realizar operações adicionais.

Explicação resumida:

let xCarros = [600, 600, 600];
let yCarros = [40, 96, 150];
let velocidadeCarros = [2, 2.5, 3.2];

Nessas linhas, são declaradas três arrays: xCarros, yCarros e velocidadeCarros. Esses arrays armazenam as posições horizontais dos carros, as posições verticais dos carros e as velocidades dos carros, respectivamente. Cada posição nos arrays representa um carro diferente. No exemplo acima, existem três carros.

function mostraCarro(){
  for (let i = 0; i < imagemCarros.length; i = i + 1){
    image(imagemCarros[i], xCarros[i], yCarros[i], 50, 40);
  }
}

Essa função mostraCarro é responsável por exibir os carros na tela do jogo. Ela utiliza um loop for para percorrer cada posição dos arrays imagemCarros, xCarros e yCarros. A função image é usada para exibir a imagem do carro na posição especificada pelas coordenadas (xCarros[i], yCarros[i]).

function movimentaCarro(){
  for (let i = 0; i < imagemCarros.length; i = i + 1){
    xCarros[i] -= velocidadeCarros[i];
  }
}

A função movimentaCarro é responsável por mover os carros na horizontal. Ela utiliza um loop for para percorrer cada posição dos arrays imagemCarros e xCarros. A cada iteração do loop, a posição xCarros[i] é diminuída pela velocidade correspondente em velocidadeCarros[i], movendo o carro para a esquerda.

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

Essa função voltaPosicaoInicialDoCarro verifica se um carro passou completamente pela tela do jogo e, caso positivo, redefine sua posição inicial. Ela também utiliza um loop for para percorrer cada posição dos arrays imagemCarros e xCarros. A função passouTodaATela é chamada, passando xCarros[i] como argumento, e se essa função retornar true, significa que o carro está fora da tela e sua posição é redefinida para 600, trazendo-o de volta para o lado direito da tela.

function passouTodaATela(xCarro){
  return xCarro < -50;
}

Essa função passouTodaATela verifica se um determinado carro passou completamente pela tela do jogo. Ela recebe a posição horizontal xCarro de um carro como argumento e retorna true se o valor for menor que -50, indicando que o carro está fora da tela, ou seja, à esquerda do limite esquerdo da tela. Caso contrário, retorna false. Essa função é usada pela função voltaPosicaoInicialDoCarro para determinar se um carro deve voltar à sua posição inicial.