c++ - 如何使用 Luabind 和 C++ 创建 Assets 管理类?

标签 c++ class stl lua luabind

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

我的问题是我正在使用 std::vector 来存储我的 Assets 类的实例,而 vector 似乎与 luabind 不兼容。我知道我需要这个 vector ,因为我的 C++ 程序将使用它进行渲染和其他操作

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

总结一下:

我有一个类保存游戏对象的信息或其他一些数据的信息。

我有另一个包含 Assets 类别 vector 的类。

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

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

最佳答案

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

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

关于c++ - 如何使用 Luabind 和 C++ 创建 Assets 管理类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2361061/

相关文章:

objective-c - cocoa /Objective-C : Cross- Class Variables

c++ - 为 STL 容器专门化成员函数

c++ - Blitz++ 数组作为映射的键

c++ - '&' 在类的一元运算符中意味着什么?

C++错误:Assignment of read-only location

c++ - 在 boost::python 中实例化 shared_ptr

c++ - Mac 上的 QDir 绝对路径

c#类同时实现和继承

c++ - 在 C++ 中将元素添加到 vector 之前是否需要检查容量?

c++ - 将 vector 输出到文件中