我希望在级别编辑器中读取一个Lua文件,以便我可以将其数据以可视化的格式显示给用户进行编辑。
如果我有一个如下所示的Lua表:
properties = {
Speed = 10,
TurnSpeed = 5
}
Speed
很明显是关键词,10
是对应的值。如果我知道关键词,我就能像这样访问对应的值(前提是表格已经在堆栈中):
lua_pushstring(L, "Speed");
lua_gettable(L, idx);
int Speed = lua_tointeger(L, -1);
lua_pop(L, 1);
我想做的是在C++中访问键的名称和相应的值。这可以实现吗?如果可以,我该如何操作?
lua_next()
弹出,然后将下一个键/值对放入堆栈(它必须在t
只是表而不是当前索引的情况下识别“下一个”元素)。 - Mariolua_next
就不起作用。毕竟它并不是魔法;它需要一些方式来知道什么是“下一个”。它使用键来完成这个任务。你从nil
开始,这告诉lua_next
获取“第一个”键。然后它使用当前键来决定下一个键的位置。这与在数组循环中的索引或在 C++ 中的迭代器没有任何区别。 - Nicol Bolaslua_pushnil
。你的评论给我解开了疑惑。谢谢! - Joel