В классе под названием 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)
];
И следовать код Бесполезный 't дать мне выход на экране
luaL_dostring(myLuaState,"shoot_a_bullet(134)\n");
PS: Я положил cin.get() в конце, это не проблема.
Редактировать: Моя основная цель - позволить моему скрипту/Enemies напрямую добавлять материал в вектор, который содержит пули/эффект/врагов и т. Д.
Причина, по которой я не могу заставить статическую функцию, потому что мне нужен указатель основной игровой сцены, чтобы она работала.
следующие коды прекрасно работает
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