【问题标题】:How do I use Luabind and C++ to create an asset managing class?如何使用 Luabind 和 C++ 创建资产管理类?
【发布时间】:2011-01-22 14:16:59
【问题描述】:

我已经进行了无数次尝试以使其正常工作,但我所做的一切都会给我带来运行时错误。我一直在尝试让资产管理器来管理我的游戏引擎的内容,并且我正在使用 lua 和 luabind 来编写脚本。让所有东西编译,绑定类和变量,从 lua 中取回基本变量,到目前为止都没有问题。

我的问题是我正在使用 std::vector 来存储我的资产类的实例,而向量似乎与 luabind 不兼容。我知道我需要这个向量,因为我的 C++ 程序会用它来渲染和做其他事情

当我绑定我的管理器类和变量(包括包含我的资产类的向量)时,一切都编译并运行良好。在我的 lua 脚本中,我可以成功创建新对象,但是当我尝试访问它们时,我得到一个运行时错误。

总结一下:

我有一个包含游戏对象信息或其他数据信息的类。

我有另一个包含资产类向量的类。

当我尝试像访问常规 lua 表一样访问此向量时,出现运行时错误。

那么我应该在 C++ 和 luabind 中做什么才能修改资产管理器类中的类?

【问题讨论】:

  • 向量是否包含指向“资产”接口的指针?您是否有包含矢量的类(例如 Assets 或 AssetManager)?与尝试公开向量本身相比,公开封装的资产相关函数可能会更好。

标签: c++ class stl lua luabind


【解决方案1】:

您可能需要使用一些相关方法绑定向量类型本身,或者尝试 Luabind 的 return_stl_iterator,它提供了对 STL 兼容容器的迭代(但不索引)。

如果您需要更多帮助,您的绑定代码及其类型会很有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-29
    相关资源
    最近更新 更多