gpt4 book ai didi

c++ - 如何通过 for 循环从 C/C++ 函数将表的表返回给 Lua

转载 作者:太空宇宙 更新时间:2023-11-04 12:03:07 24 4
gpt4 key购买 nike

我有一个对象的 std::list,我想给 Lua 一个返回它的 2D 位置的函数。所以我需要创建一个表的表

{ {x,y}, {x,y}, {x,y}...}

因为它都在列表中,所以我需要在迭代列表时创建它..

    lua_newtable(L_p);  // table at 0
int tableIndex = 1; // first entry at 1

for( std::list<AmmoDropped*>::iterator it = m_inputAmmosDropped.begin();
it != m_inputAmmosDropped.end();
++it ){

// what do I do here

++tableIndex;
}

// returns the table
return 1;

由整数键和 'x' 和 'y' 索引:

 positions[0].x
positions[0].y

我通过反复试验进行尝试,但由于我不知道/暂时不知道如何调试它,所以我真的迷路了。

最佳答案

它会像这样:

lua_newtable(L);    // table at 0
int tableIndex = 1; // first entry at 1

for(std::list<AmmoDropped*>::iterator it = m_inputAmmosDropped.begin();
it != m_inputAmmosDropped.end();
++it ){
lua_createtable(L, 2, 0); // a 2 elements subtable
lua_pushnumber(L, it->x);
lua_rawseti(L, -2, 1); // x is element 1 of subtable
lua_pushnumber(L, it->y);
lua_rawseti(L, -2, 2); // y is element 2 of subtable
lua_rawseti(L, -3, tableIndex++) // table {x,y} is element tableIndex
}
return 1;

警告:这是我脑海中未经测试的代码......

关于c++ - 如何通过 for 循环从 C/C++ 函数将表的表返回给 Lua,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13326247/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com