(sidenote: Questa è la programmazione di videogiochi)LuaBind: come associare un'istanza di classe specifica a Lua?
Binding intere classi di Lua usando LuaBind è facile:
class test
{
test()
{
std::cout<<"constructed!"<<std::endl;
}
void print()
{
std::cout<<"works!"<<std::endl;
}
}
// qualche altra parte
module[some_lua_state]
[
class_<test>("test")
.def(constructor<>())
.def("print",&test::print)
];
Ora posso creare istanze della classe in Lua e usarlo:
lua_example.lua
foo = test() //will print "constructed!" on the console
foo:print() //will print "works!" on the console
Tuttavia, ora mi piacerebbe associare un'istanza specifica di test a Lua. Ciò mi consentirebbe di passare oggetti a Lua, ad es. un'istanza del lettore di classe e fare qualcosa di simile:
Player:SetPosition(200,300)
invece di andare nel modo più duro e avere qualcosa di simile
SetPosition("Player",200,300)
dove la corrispondente funzione C SetPosition ++ ha bisogno di cercare uno std: : mappa per trovare il giocatore.
E 'anche possibile e se sì, come posso farlo in LuaBind?
Sono passate un paio d'ore da quando hai risposto, ma grazie ancora. luabind :: globals rende tutto molto semplice. Anche luabind ha elevato il mio rispetto per la metaprogrammazione dei modelli in C++ a un nuovo livello. – TravisG