如何从lua脚本访问c ++类成员函数?

时间:2011-04-23 22:17:02

标签: c++ scripting lua

我认为我想要解决的问题对大多数人来说都很简单:) 假设我有一个具有成员函数Node的类setPosition(float x, float y, float z)。我希望能够在lua中定义Node类的变量,然后能够使用setPosition()函数形成Lua。 我知道有些问题是Lua更倾向于C而不是C ++,并且它有C ++类的问题,但我也知道它是可以实现的。

1 个答案:

答案 0 :(得分:2)

我会使用Luabind。有了它,您可以轻松地绑定C ++类,以便可以在Lua中创建,访问和修改它们。您用C ++编写的代码可能大致如下:

module(L) [
    class_<Node>
        .def(constructor<>)
        .def("setPosition", &Node::setPosition)
];

然后你可以在Lua中说出来:

node = Node()
node:setPosition(x, y, z)

您还可以进行绑定,以便Lua看起来更自然,可以支持以下内容:

node1 = Node(x, y, z)
node2 = Node()
node2.position = { x, y, z }
相关问题