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

[dúvida] loop com atributos para uma variável universal dentro da função

declaramos colisao, como false, para podermos iniciar a função verficaColisao...

let colisao = false;

function verificaColisao() {
  for (let i = 0; i < imagemCarros.length; i++){
    colisao = collideRectCircle(xCarros[i], yCarros[i], comprimentoCarro, alturaCarro, xAtor, yAtor, 10)
    if (colisao){
      voltaAtorParaPosicaoInicial();
    }
  }
}

dentro da função, colisao, recebe...

colisao = collideRectCircle(xCarros[i], yCarros[i], comprimentoCarro, alturaCarro, xAtor, yAtor, 10)

ao atribuirmos esses valores, para a variável universal dentro da função, estamos dizendo para ela a condição para ser true?

4 respostas

Olá Fernando,

A função collideRectCircle por padrão, retorna um valor verdadeiro ou falso de acordo com as condições calculadas utilizando os parâmetros fornecidos. Essa função foi desenvolvida justamente para detectar colisões entre retângulos e círculos, onde retornará true se houver colisão e false se não houver.

Então sim, estamos dizendo para a variável colisao quais as condições em que ela será true de acordo com o retorno de collideRectCircle.

Quer dizer que eu posso usar a lógica de alterar o valor de uma variável de escopo global, dentro de uma função, no JS?

solução!

Isso mesmo! Variáveis globais podem ser utilizadas onde quiser dentro do mesmo código.

Diferentemente de uma variável criada dentro de uma função e que só pode ser utilizada dentro dessa função, as variáveis globais (definidas fora de qualquer função) possuem um escopo mais abrangente, respeitando as especificações dos termos utilizados em sua criação (let, var ou const) .

Olá, Nithel.

Obrigado pela resposta.