使用C++/SDL从lua中加载字符串数组

我正在使用Lua来在C++/SDL中加载地图,我有一个在Lua中的数组来决定瓷砖图像的位置,但我不知道如何将它传输到C++中的数组。我已经寻找了解释,但它们都涉及整数,而Lua文件只有一个数组,而且由于某种原因代码不起作用。这可能是个愚蠢的问题,但是是的。

点赞
用户1847592
用户1847592

你不能一次获取整个数组。

使用循环来获取所有的字符串。

string whatsTile[475];
int len_whatsTile = 0;

void loadMapLua(){
   lua_State* L = lua_open();
   luaL_openlibs(L);
   luaL_dofile(L, "../GameResources/LuaScripts/Map.lua");
   lua_getglobal(L, "whatsTile");
   int Index = 0;
   do {
      lua_pushinteger(L, Index++);
      lua_gettable(L, -2);
      if (lua_isnil(L, -1))
         Index = 0;
      else
         whatsTile[len_whatsTile++].assign(lua_tostring(L, -1));
      lua_pop(L, 1);
   } while (Index > 0);
   lua_close(L);
}
2013-02-19 21:36:25