In response to @ROB, there was this confusion of functions precisely so as not to have thousands of functions scattered throughout the code.
Here is the original code for you to understand how boring this is:
PS: " NomePressionado = event.target.name " refers to the botoes[i].name
function TouchBotoes(event) TouchCancelX = event.x TouchCancelY = event.y Runtime:removeEventListener("enterFrame", Zerar) NomePressionado = event.target.name if (event.phase == "began" ) then function TempoPressionado( event ) TapOuTouch = TapOuTouch + 0.01 --print(TapOuTouch) if ModeloNaTela == false then if (TapOuTouch \> 0.4) then if AmostraCaminhao == nil then ModeloNaTela = true AmostraCaminhao = display.newImageRect("imagens/Caminhao".. NomePressionado .. ".png", bottomMarg/2, rightMarg/2) AmostraCaminhao.x = display.contentCenterX AmostraCaminhao.y = display.contentCenterY AmostraCaminhao:rotate( 90 ) AmostraCaminhao.alpha = 0.5 transition.to( AmostraCaminhao, { time=350, alpha=1.0 } ) transition.to( bg, { time=250, alpha=0.5 } ) for i=1,#Categorias do transition.to( botoes[i], { time=250, alpha=0.5 } ) end end end end end Runtime:addEventListener("enterFrame", TempoPressionado) end if ( event.phase == "moved" ) then if event.x \> TouchCancelX + 10 or event.y \> TouchCancelY + 10 then Runtime:addEventListener("enterFrame", Zerar) Runtime:removeEventListener("enterFrame", TempoPressionado) if (TapOuTouch \> 0.4) then local function listener1( obj ) display.remove(AmostraCaminhao) AmostraCaminhao = nil ModeloNaTela = false TapOuTouch = 0.01 end transition.to( AmostraCaminhao, { time=350, alpha=0, onComplete = listener1 } ) transition.to( bg, { time=350, alpha=1.0 } ) for i=1,#Categorias do transition.to( botoes[i], { time=350, alpha=1.0 } ) end end end end if ( event.phase == "ended" or event.phase == "cancelled" ) then Runtime:removeEventListener("enterFrame", TempoPressionado) if (TapOuTouch \< 0.4) then local NomeBotao = event.target function ReAparecer(event) transition.to( NomeBotao, { time=100, alpha=1.0 } ) end transition.to(NomeBotao, { time=100, alpha=0, onComplete=ReAparecer } ) print("tap") print(event.target.name) botaoPressionado() else local function listener3( event ) display.remove(AmostraCaminhao) AmostraCaminhao = nil ModeloNaTela = false TapOuTouch = 0.01 print("excluido") end transition.to( AmostraCaminhao, { time=350, alpha=0, onComplete = listener3 } ) transition.to( bg, { time=350, alpha=1.0 } ) for i=1,#Categorias do transition.to( botoes[i], { time=350, alpha=1.0 } ) end end Runtime:addEventListener("enterFrame", Zerar) end return true end --- Disponibilizar as imagens dos botões na tela for i=1,QuantidadeCategorias do if i==1 then QuantidadeRepetidas = 1 botoes[i] = display.newImageRect("imagens/".. Categorias[i] .. ".png", 70, 30) botoes[i].x = display.contentCenterX/0.61 botoes[i].y = display.contentCenterY botoes[i]:rotate( 90 ) elseif i \> 1 and i \< 8 then if (i%2) == 0 then -- Quando o numero é par botoes[i] = display.newImageRect("imagens/".. Categorias[i] .. ".png", 70, 30) botoes[i].x = botoes[i-QuantidadeRepetidas].x botoes[i].y = botoes[i-QuantidadeRepetidas].y -75 botoes[i]:rotate( 90 ) else -- Quando o número é impar botoes[i] = display.newImageRect("imagens/".. Categorias[i] .. ".png", 70, 30) botoes[i].x = botoes[i-QuantidadeRepetidas].x botoes[i].y = botoes[i-QuantidadeRepetidas].y + 75 botoes[i]:rotate( 90 ) end QuantidadeRepetidas = QuantidadeRepetidas + 1 end if i == 8 then QuantidadeRepetidas = 1 botoes[i] = display.newImageRect("imagens/".. Categorias[i] .. ".png", 70, 30) botoes[i].x = display.contentCenterX/0.61 - 35 botoes[i].y = display.contentCenterY botoes[i]:rotate( 90 ) end if i \> 8 and i \< 15 then if (i%2) == 0 then -- Quando o numero é par botoes[i] = display.newImageRect("imagens/".. Categorias[i] .. ".png", 70, 30) print(i .. " " .. QuantidadeRepetidas) botoes[i].x = botoes[i-QuantidadeRepetidas].x botoes[i].y = botoes[i-QuantidadeRepetidas].y -75 botoes[i]:rotate( 90 ) else -- Quando o número é impar botoes[i] = display.newImageRect("imagens/".. Categorias[i] .. ".png", 70, 30) botoes[i].x = botoes[i-QuantidadeRepetidas].x botoes[i].y = botoes[i-QuantidadeRepetidas].y + 75 botoes[i]:rotate( 90 ) end QuantidadeRepetidas = QuantidadeRepetidas + 1 end if i == 15 then QuantidadeRepetidas = 1 botoes[i] = display.newImageRect("imagens/".. Categorias[i] .. ".png", 70, 30) botoes[i].x = display.contentCenterX/0.61 - 35 - 35 botoes[i].y = display.contentCenterY botoes[i]:rotate( 90 ) end if i \> 15 and i \< 22 then if (i%2) == 0 then -- Quando o numero é par botoes[i] = display.newImageRect("imagens/".. Categorias[i] .. ".png", 70, 30) print(i .. " " .. QuantidadeRepetidas) botoes[i].x = botoes[i-QuantidadeRepetidas].x botoes[i].y = botoes[i-QuantidadeRepetidas].y -75 botoes[i]:rotate( 90 ) else -- Quando o número é impar botoes[i] = display.newImageRect("imagens/".. Categorias[i] .. ".png", 70, 30) botoes[i].x = botoes[i-QuantidadeRepetidas].x botoes[i].y = botoes[i-QuantidadeRepetidas].y + 75 botoes[i]:rotate( 90 ) end QuantidadeRepetidas = QuantidadeRepetidas + 1 end if i == 22 then QuantidadeRepetidas = 1 botoes[i] = display.newImageRect("imagens/".. Categorias[i] .. ".png", 70, 30) botoes[i].x = display.contentCenterX/0.61 - 35 - 35 - 35 botoes[i].y = display.contentCenterY botoes[i]:rotate( 90 ) end if i \> 22 and i \< 29 then if (i%2) == 0 then -- Quando o numero é par botoes[i] = display.newImageRect("imagens/".. Categorias[i] .. ".png", 70, 30) print(i .. " " .. QuantidadeRepetidas) botoes[i].x = botoes[i-QuantidadeRepetidas].x botoes[i].y = botoes[i-QuantidadeRepetidas].y -75 botoes[i]:rotate( 90 ) else -- Quando o número é impar botoes[i] = display.newImageRect("imagens/".. Categorias[i] .. ".png", 70, 30) botoes[i].x = botoes[i-QuantidadeRepetidas].x botoes[i].y = botoes[i-QuantidadeRepetidas].y + 75 botoes[i]:rotate( 90 ) end QuantidadeRepetidas = QuantidadeRepetidas + 1 end if i == 29 then QuantidadeRepetidas = 1 botoes[i] = display.newImageRect("imagens/".. Categorias[i] .. ".png", 70, 30) botoes[i].x = display.contentCenterX/0.61 - 35 - 35 - 35 - 35 botoes[i].y = display.contentCenterY botoes[i]:rotate( 90 ) end if i \> 29 and i \< 36 then if (i%2) == 0 then -- Quando o numero é par botoes[i] = display.newImageRect("imagens/".. Categorias[i] .. ".png", 70, 30) print(i .. " " .. QuantidadeRepetidas) botoes[i].x = botoes[i-QuantidadeRepetidas].x botoes[i].y = botoes[i-QuantidadeRepetidas].y -75 botoes[i]:rotate( 90 ) else -- Quando o número é impar botoes[i] = display.newImageRect("imagens/".. Categorias[i] .. ".png", 70, 30) botoes[i].x = botoes[i-QuantidadeRepetidas].x botoes[i].y = botoes[i-QuantidadeRepetidas].y + 75 botoes[i]:rotate( 90 ) end QuantidadeRepetidas = QuantidadeRepetidas + 1 end -- Parametro de correção if QuantidadeRepetidas \> 2 then QuantidadeRepetidas = 2 end botoes[i].name = Categorias[i] botoes[i]:addEventListener("touch", TouchBotoes) group:insert( botoes[i] ) end