Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Na function passouTodaATela

Amigos, poderiam me explicar pq nessa function esta como xCarro e não como xCarros?

3 respostas
solução!

Olá, Raimundo!

Respondendo sua pergunta, não pode ser xCarros porque xCarros já está definido lá em cima no "let xCarros = [600, 600, 600];".

Quando criamos uma função que recebe um parâmetro, não importa qual nome nós atribuímos a ela. Note que o xCarro da função passouTodaATela pode ser trocado por qualquer outro nome, você pode colocar até

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

que o resultado vai ser o mesmo, porque ao chamar essa função passouTodaATela dentro da função function voltaPosicaoInicialDoCarro(){ for(let i = 0; i < imagemCarros.length; i = i + 1){ ** if(passouTodaATela(xCarros[i]))**{ xCarros[i] = 600; } } } ele passa o parâmetro xCarros[i], que será substituído na função passouTodaATela, assim conseguindo rodar o loop.

Espero que tenha entendido!

Olá ! Eu tinha entendido a explicação, porém quando testei colocar xCarros no lugar de xCarro na função passouTodaATela funcionou da mesma forma.

Débora, boa noite!

Nesse caso o xCarro é o parâmetro da função "passouTodaATela". Ele só existe como variável dentro dessa função.

Olha esse exemplo (rode no editor do p5js pra ficar mais fácil de entender kkk):

function setup() {
  createCanvas(400, 400);
}

function draw() {
  background(220);
  printando();
}

//aqui declaramos uma variável usando o let, repare que o valor dela é 1
let variavelDeVerdade = 1

//aqui dentro do parênteses, ela não é mais a mesma variável la de cima, é  um parâmetro que só existe dentro dessa função, note que nem ficou em azul.
function funcaoDeExemplo(variavelDeVerdade){
  return variavelDeVerdade > 5

}

//veja o que está aparecendo em seu console. Apesar do JS entender que o valor da VARIÁVEL (declarada com let é 1), ele usa na função o valor 6 e retorna verdadeiro para o teste de 6 > 5.
function printando(){
  print(funcaoDeExemplo(6))
  print(variavelDeVerdade)
}

Mas o ideal é que não se use parâmetros/variáveis com o mesmo nome, pois dependendo do projeto pode gerar conflito.

Me desculpe se não consegui ser muito claro kkk