Luabindで奇妙な問題に巻き込まれました。Lua から C++ クラスを継承したいのですが、Luabind のドキュメントに記載されている方法ではうまくいきません。
function MyGame.__init()
Game.__init(self)
end
このコードは、self
定義されていないように見えるため、アプリケーションをクラッシュさせるだけです (nil
印刷すると返されます)。
ドキュメントに記載されているように、ラッパー構造体を使用しています。
struct GameWrapper: Game, luabind::wrap_base{
GameWrapper()
: Game()
{}
virtual int Loop(void){
call<int>("Loop");
}
static int default_Loop(Game* ptr){
return ptr->Game::Loop();
}
static void Lua(lua_State *lua){
luabind::module(lua)
[
luabind::class_<Game, GameWrapper>("Game")
.def(luabind::constructor<>())
.def("Loop", &Game::Loop, &GameWrapper::default_Loop)
];
}
};
私が間違っているかもしれないアイデアはありますか?