我查看了多个来源,但我只是不理解它们。大多数情况下,它们要么使用像 luaBind 这样的库(我不想使用它,因为它依赖于 Boost),要么它们不是 C++ 中的实例对象,而是直接在 Lua 中创建的。
我有一个 Player 类,它被包裹在另一个类中来处理 Lua 调用。我在应用程序的初始化中创建了这两个对象的 std::vector 列表。
所以基本上我不希望 Lua 脚本创建这些播放器对象,我只想创建一个函数getPlayer()
,然后返回 Lua 包装的对象。我不知道从哪里开始定义 Lua 包装对象以供 Lua 调用,也不知道如何将对象的实例返回给 Lua,以便我可以使用它的调用。
这是我希望我的 Lua 脚本看起来像的示例:
player = getPlayer(1) -- Returns the Lua wrapped object from C++ where 1 is the object's index in the std::vector list
print("Player's name: ", player:name()) -- Print's the player's name
有人可以指点我一个体面的教程来解释如何做到这一点。我很确定这不是某种“从未做过,你为什么要这样做”的案例,所以肯定至少有一个教程。我现在已经搜索了大约 2 天,没有积极的结果。