(sidenote: Ta gra jest programowanie)LuaBind: Jak powiązać określoną instancję klasy z Lua?
Oprawa całych klas do Lua za pomocą LuaBind jest proste:
class test
{
test()
{
std::cout<<"constructed!"<<std::endl;
}
void print()
{
std::cout<<"works!"<<std::endl;
}
}
// gdzieś indziej
module[some_lua_state]
[
class_<test>("test")
.def(constructor<>())
.def("print",&test::print)
];
Teraz mogę tworzyć instancje klasy w Lua i użyj go:
lua_example.lua
foo = test() //will print "constructed!" on the console
foo:print() //will print "works!" on the console
Jednak teraz chciałbym powiązać konkretny przypadek testu z Lua. To umożliwiłoby mi przekazywanie obiektów do Lua, np. instancją Player-klasy i zrobić coś takiego:
Player:SetPosition(200,300)
W przeciwieństwie do dzieje się w przykry sposób i mając coś takiego
SetPosition("Player",200,300)
którym odpowiada C funkcja setPosition ++ musi patrzeć std: : map, aby znaleźć gracza.
Czy jest to możliwe, a jeśli tak, jak mogę to zrobić w LuaBind?
Minęło kilka godzin, odkąd odpowiedziałeś, ale jeszcze raz dziękuję. luabind :: globals to wszystko bardzo, bardzo łatwe. Również luabind podniósł mój szacunek do metaprogramowania szablonu w C++ na nowy poziom. – TravisG