Qual è la libreria consigliata per l'utilizzo di Lua da C ++? [chiuso]


13

Attualmente sto pianificando come integrare gli script Lua nel mio motore di gioco 2D e vorrei andare direttamente alla soluzione più adeguata per avere classi e oggetti C ++ esposti.

Ho letto questo (se ti aiuta): http://lua-users.org/wiki/BindingCodeToLua

Se hai un linguaggio di scripting migliore da consigliare, cercalo; D

Tutto l'aiuto è il benvenuto, devo prendere la soluzione migliore per iniziare a implementare Grazie

Risposte:


4

Se la qualità principale del tuo linguaggio di scripting è semplice, prova AngelScript . Può chiamare direttamente le funzioni registrate senza la necessità di scrivere funzioni proxy e supporta convenzioni di chiamata di un'ampia varietà di compilatori. Il linguaggio stesso è simile a c / c ++, che può essere una cosa buona o cattiva, a seconda.



4

Fintanto che stai eseguendo un'associazione ragionevolmente convenzionale, LuaBind farà tutto il necessario. Classi e funzioni vincolanti tendono ad essere un affare di una riga per funzione. Se vuoi un esempio, ecco il file applicabile dal motore di gioco su cui ho lavorato (cerca il modulo (L) per l'avvio dell'interfaccia LuaBind, DontKillMeBro <> è un piccolo sistema che ho sistemato per farmi più precisamente la distruzione di oggetti temporali per determinati oggetti sensibili.)

Se vuoi qualcosa di più complesso, probabilmente dovrai utilizzare l'API Lua attuale. Fortunatamente, l'API Lua è ragionevolmente semplice.


1

Stiamo usando OOLua per Pioneer . Fornisce un mucchio di macro che usi per associare le "classi" Lua alle classi C ++. Ha un bel po 'di potere ma è piuttosto semplice. Non ne ho usati altri, quindi non posso commentare come si confronta. Ecco un esempio .


1

Vorrei andare giù con le librerie precompilate di Nuclex e includerei i file per LuaBind. (cioè se lavori con VS2008)

Poiché LuaBind richiede di costruirlo con alcune librerie e strumenti Boost, questo pacchetto ti farà risparmiare tempo prezioso (e forse un po 'di mal di testa, chi lo sa). Direi che riuscirai a far funzionare Lua in meno di un'ora se sai cosa stai facendo.

Puoi anche considerare di cambiare la Lua dll predefinita in una LuaJIT dll se stai cercando un piccolo guadagno in termini di prestazioni . Si tratta solo di compilare la libreria e sostituire la lib / dll a cui ci si collega nel progetto principale, quindi è abbastanza facile.

Con ciò, buona fortuna!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.