我正在尝试使用唯一可用的数据结构在Lua中创建一个菜单系统:tables。我有两个菜单:connectionmenu和mainmenu。
我希望能够在菜单之间切换。例如,从mainmenu,转到connectionmenu,然后它将成为显示的当前菜单。
这是我的代码:请注意,我正在使用一个名为onelua的库来显示菜单,但我的问题与核心lua和表格直接相关。
function changemenu(menu)
currentmenu = menu
end
connectionmenu = {"Connection Menu Title"};
mainmenu = {"Main Menu Title"}
currentmenu = connectionmenu
connectionmenu["Connection Menu"] = changemenu(mainmenu)
mainmenu["Main Menu"] = "test value"
现在如何执行连接菜单[“连接菜单”]的功能?
我试过了:
return [currentmenu["Connection Menu"]]
无济于事。
答案 0 :(得分:1)
首先,您需要将您的功能作为表格的一部分:
connectionmenu = {
"Title Here",
func = function (firstarg, secondarg)
-- Function body here
end
}
然后,您可以通过调用表的func方法来运行该函数:
currentmenu.func(firstarg, secondarg)
答案 1 :(得分:1)
我不明白你的意思。因为我不能添加评论,我会给你一些建议。
首先,如果你想在菜单中添加一个功能(connectionmenu或mainmenu),你就可以像在楼上一样。
其次,如果你想执行changemenu函数。你需要给元素赋值函数,而不是函数的返回值。你可以像这样修改:
connectionmenu["Connection Menu"] = changemenu
并执行以下功能:
return currentmenu["Connection Menu"]();
我希望它对你有用。