Qual é a biblioteca recomendada para usar Lua em C ++? [fechadas]


13

Atualmente, estou planejando como integrar o script Lua no meu Game Engine 2D e gostaria de ir direto para a solução mais adequada para expor as classes e objetos C ++.

Eu li isso (se isso ajudar você a ajudar): http://lua-users.org/wiki/BindingCodeToLua

Se você tem uma linguagem de script melhor para recomendar, vá em frente; D

Toda ajuda é bem-vinda, eu preciso pegar a melhor solução para começar a implementar Obrigado

Respostas:


4

Se a qualidade principal da sua linguagem de script for de ligação fácil, tente o AngelScript . Ele pode chamar funções registradas diretamente, sem a necessidade de gravar funções de proxy, e suporta convenções de chamada de grande variedade de compiladores. A linguagem em si é semelhante ao c / c ++, que pode ser uma coisa boa ou ruim, dependendo.



4

Contanto que você esteja fazendo uma ligação razoavelmente convencional, o LuaBind fará tudo o que você precisa. Classes e funções vinculativas tendem a ser uma transação de uma linha por função. Se você quiser um exemplo, aqui está o arquivo aplicável do mecanismo de jogo em que estou trabalhando (procure o módulo (L) para o início da interface LuaBind, o DontKillMeBro <> é um pequeno sistema que eu montei para me permitir mais precisamente o tempo de destruição de objetos para certos objetos sensíveis.)

Se você quiser algo mais complexo, provavelmente precisará usar a API Lua real. Felizmente, a API Lua é razoavelmente simples.


1

Estamos usando o OOLua para Pioneer . Ele fornece uma pilha de macros que você usa para ligar "classes" Lua às classes C ++. Tem um pouco de poder, mas é bem direto. Eu não usei nenhum outro, por isso não posso comentar como ele se compara. Aqui está um exemplo .


1

Eu recomendaria as bibliotecas pré-compiladas do Nuclex e incluiria arquivos para o LuaBind. (ou seja, se você estiver trabalhando com o VS2008)

Como o LuaBind exige que você o construa com algumas bibliotecas e ferramentas do Boost, este pacote economizará um tempo valioso (e talvez um pouco de dor de cabeça, quem sabe). Eu diria que você seria capaz de executar Lua em menos de uma hora, se você souber o que está fazendo.

Você também pode considerar alterar a dll Lua padrão para uma dll LuaJIT se estiver procurando por um pequeno ganho de desempenho . É apenas uma questão de compilar a biblioteca e substituir a lib / dll na qual você está vinculando no seu projeto principal, por isso é bastante fácil.

Com isso, boa sorte!

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.