Gaimo Posted February 24, 2020 Share Posted February 24, 2020 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
DNL291 Posted February 24, 2020 Share Posted February 24, 2020 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. 1 Link to comment
KronoS Lettify Posted February 24, 2020 Share Posted February 24, 2020 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
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now