В классе Test_Class у меня есть функция:
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
объявлена в классе или снаружи? - person Caesar   schedule 17.01.2014