Lua:通过变量在表名上设置值

时间:2018-08-24 21:17:59

标签: lua

我在Lua还是个新手,但是目前正在为tic-80项目编写一个清单屏幕。我一直在尝试创建一个函数来绘制更改变量值的按钮。大量的谷歌搜索和一些实验导致了这一点:

function drawButton(x,y,sprite,target,action). 
    [Drawing button stuff here]
    if md==true and mx<=x+12 and mx>=x and my<=y+12 and my>=y then
        _G[target]=action
    end
end

这对于变量很有效:

drawButton (12,12,0,"eqf",1)

但是当我尝试更改表中的值时,它什么也没做。

drawButton (12,12,0,"actors.player.eqf",1)

是否有更好的方法也支持表格? 预先感谢!

1 个答案:

答案 0 :(得分:1)

  

“ actors.player.eqf”

这不能解决嵌套表中的字段。

如果要更改任意表中的字段,则需要同时传递-表和必需的键进行更新。像这样:

function drawButton(x,y,sprite,object,target,action)
    -- [Drawing button stuff here]
    if md==true and mx<=x+12 and mx>=x and my<=y+12 and my>=y then
        object[target]=action
    end
end

drawButton (12,12,0, _G, "eqf",1)
drawButton (12,12,0, actors.player, "eqf",1)