在一個名爲爲test_class類,我有一個函數:luabind沒有推出功能我已經定義它
shoot_a_bullet(int damage)
{
cout << "runned"; // i had #using namespace std
}
我曾這樣定義以下
luabind::module(myLuaState)[
luabind::def("shoot_a_bullet", &Test_Class::shoot_a_bullet)
];
的代碼並按照代碼沒給我一個屏幕上的輸出
luaL_dostring(myLuaState,"shoot_a_bullet(134)\n");
PS:我確實把cin.get()結束,這不是問題。
編輯: 我這樣做的主要目的是讓我的腳本人物/敵人能夠直接添加東西到持有子彈/效果/敵人等的矢量。
我不能讓這個函數變成靜態的原因是因爲我需要主遊戲階段的指針才能讓它工作。
以下代碼工作正常
void print_hello(int number) {
cout << "hello world and : " << number << endl << "number from main : " << x << endl;
}
int x; //and the main with a global value
int main()
{
cin >> x;
lua_State *myLuaState = luaL_newstate();
luabind::open(myLuaState);
luabind::module(myLuaState)[
luabind::def("print_hello", print_hello)
];
luaL_dostring(
myLuaState,
"print_hello(123)\n"
);
cin.get();
cin.get();
lua_close(myLuaState);
}
我需要一種方法來做到這一點的一類,這不是主要的
在類中或外部聲明'shoot_a_bullet'函數嗎? – Caesar
嘗試打印出錯誤。您可能還有其他問題 –
@Dmitry Ledentsov沒有錯誤 – MadokaMagica