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)

Duvida sobre function passouTodaATela

Boa noite!

Então, meu código funcionou corretamente, mas fiquei me perguntando:

  1. Porque a gente não precisou adicionar o function passouTodaATela no function draw do inicio do código?
  2. É porque ele já está sendo executado dentro do if do voltaPosicaoDoCarro ? 3. Em que outras funções além do draw eu consigo pôr minhas funções para serem executadas? ` //variáveis carros let xCarros = [600, 600, 600, -50, -50, -50]; let yCarros = [40, 100, 155, 215, 270, 320]; let velocidadeCarros = [5, 2, 4, 5, 3, 6];

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

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

function voltaPosicaoDoCarro () { for ( let i = 0; i < xCarros.length -3 ; i += 1){ if (passouTodaATela(xCarros[i])){ xCarros[i] = 600 } } } function passouTodaATela(xCarros){ return xCarros < -50; }

function voltaPosicaoDoCarro2 () { for ( let i = 3; i < xCarros.length; i += 1){ if (passouTodaATela2(xCarros[i])){ xCarros[i] = -50 } } } function passouTodaATela2(xCarros){ return xCarros > 600; } `

1 resposta
solução

Fala Allyson, como vai?

Vamos lá:

  • Isso mesmo. Não precisamos adicionar a função passouTodaATela no draw, pois existe a função voltaPosicaoInicialDoCarro(). Observe o código abaixo:
function draw() {
  background(imagemDaEstrada);
  mostraAtor();
  mostraCarro();
  movimentaCarro();
  movimentaAtor();
  voltaPosicaoInicialDoCarro();
  verificaColisao();
  incluiPontos();
  marcaPonto();
}

Agora observe a função :

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

function passouTodaATela(xCarro){
  return xCarro < -50;
}
  • Para executar qualquer função, você pode ou incluir no draw, ou alguma função dentro do draw chamar uma função (que não está no draw) para ser executada.

: )