(旁注:这是游戏编程)LuaBind:如何将特定类的实例绑定到Lua?
使用LuaBind很容易绑定整个班的Lua:
class test
{
test()
{
std::cout<<"constructed!"<<std::endl;
}
void print()
{
std::cout<<"works!"<<std::endl;
}
}
//别的地方
module[some_lua_state]
[
class_<test>("test")
.def(constructor<>())
.def("print",&test::print)
];
现在我可以创建类的实例在Lua中使用它:
lua_example.lua
foo = test() //will print "constructed!" on the console
foo:print() //will print "works!" on the console
但是,现在我想绑定一个特定的测试实例给Lua。这将使我能够将物体传递给Lua,例如播放器类的一个实例,这样做:
Player:SetPosition(200,300)
与之相对要硬的方式,并具有类似
SetPosition("Player",200,300)
,其中相应的C++ SETPOSITION功能需要查找一个std: :地图寻找玩家。
这是甚至可能的,如果是这样,我怎么能在LuaBind中做到这一点?
你回答了几个小时,但再次感谢。 luabind :: globals使得这一切非常非常简单。此外,luabind将我对C++模板元编程的敬意提升到了一个新的层次。 – TravisG