Jump to content

Como fazer uma rolagem infinita de uma tabela?


Recommended Posts

Eu tenho uma lista com X itens, quero fazer uma rolagem infinita, por exemplo:

Item atual = 2, se eu apertar para a esquerda, vai para o 1, se eu apertar novamente, quero que vá para o último da lista.

Gostaria de saber se essa é uma opção viável ou é uma gambiarra, teria como melhorar?

Pensei em fazer algo assim:

table = {
    [1] = {"item1"},
    [2] = {"item2"},
    [3] = {"item3"},
  }
  
function exemplo ()
    local valorAtual = 1
  
    if pressedLeft then
        valorAtual -= 1
    	if valorAtual <= 0 then valorAtual = 3 end -- Deve impedir de ficar um valor negativo
    elseif pressedRight then
        valorAtual += 1
    	if valorAtual >= 3 then valorAtual = 1 end -- Deve impedir de ficar um valor maior que o existente na tabela
    end
end

 

Link to comment

A ideia está certa, mas esse -= e += não sei de onde você tirou ?
valorAtual será usado para indexar a tabela na referência da sub-tabela, e essa já parece ser sua ideia. Faça assim:

No escopo do pressedLeft subtrai e verifica se é == 0, se for seta o comprimento total da tabela que você pode obter com o operador (#table).

Em pressedRight adiciona +1 e verifica se é maior que o tamanho da tabela, se for seta pra 1.

  • Thanks 1
Link to comment
18 minutes ago, DNL291 said:

A ideia está certa, mas esse -= e += não sei de onde você tirou ?
valorAtual será usado para indexar a tabela na referência da sub-tabela, e essa já parece ser sua ideia. Faça assim:

No escopo do pressedLeft subtrai e verifica se é == 0, se for seta o comprimento total da tabela que você pode obter com o operador (#table).

Em pressedRight adiciona +1 e verifica se é maior que o tamanho da tabela, se for seta pra 1.

Eu acho que ele tirou esse += e -= do Javascript '-'

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...