Lua:从变量设置表名称上的值

我在 Lua 中非常新,但目前正在为 tic-80 项目编写库存屏幕。我一直在尝试创建一个函数来绘制更改变量值的按钮。大量的谷歌搜索和一些实验导致了以下结果:

function drawButton(x,y,sprite,target,action).
    [在此处绘制按钮]
    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)

是否有更好的方法也支持表格呢? 提前致谢!

点赞
用户5675002
用户5675002

actors.player.eqf

这并不涉及嵌套表中的字段。

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

function drawButton(x,y,sprite,object,target,action)
    -- [绘制按钮内容在这里]
    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)
2018-08-24 22:23:08