1
resposta

funcao desenhaObjetos

Não entendi muito bem como funciona esse for que funciona como um par, poderiam me explicar para que serve o "indice". O que eu acho que pode ser é que o "objeto" é o "objetos" que foi passado, assim mostrando a função o que ela deveria acessar e "indice" é o dicionario "chave", mas não sei como funcionaria isso

Aqui é a função

function desenhaObjetos()
    for indice, objeto in pairs(objetos) do
    spr(objeto.sprite,
        objeto.x,
        objeto.y, 
        objeto,corDeFundo,
        1,
        0,
        0,
        2,
        2)
    end
end

Aqui é o dicionario

local chave = {
       sprite = 364,
    x =    coluna,
    y =linha,
    corDeFundo = 6
}
1 resposta

Olá Michael, peço desculpas pela demora no retorno.

Esse for vai executar o seu código spr(...) uma vez para cada valor dentro de objetos, até o momento temos apenas uma chave mas vamos considerar que temos 3 chaves dentro de objetos chave1, chave2 e chave3:

  • O for vai pegar primeiro a chave1 e colocar o seu valor/conteúdo dentro de objeto e então vai executar o spr(...)
  • Depois o for vai pegar a chave2 e colocar o seu valor dentro de objeto, como já fez antes, e então vai executar novamente o spr(...)
  • Novamente o processo vai ser repetido para a chave3

Então resumindo, o valor de objeto vai receber o valor de cada item dentro de objetos, um de cada vez.

Já esse pairs() é apenas para "transformar" o objetos em algo que o for entenda, o valor de objetos não pode ser passado diretamente para o for. Esse indice é um resultado do uso do pairs(), ele vai representar o índice de cada execução do for, seu primeiro valor é 1, depois 2 e assim por diante.