Was ist die empfohlene Bibliothek für die Verwendung von Lua aus C ++? [geschlossen]

13

Derzeit plane ich, Lua-Skripte in meine 2D-Game-Engine zu integrieren, und ich möchte direkt zu der am besten geeigneten Lösung übergehen, um C ++ - Klassen und -Objekte verfügbar zu machen.

Ich habe Folgendes gelesen (wenn es Ihnen hilft): http://lua-users.org/wiki/BindingCodeToLua

Wenn Sie eine bessere Skriptsprache zum Empfehlen haben, wählen Sie diese aus. D

Jede Hilfe ist willkommen. Ich muss die beste Lösung finden, um mit der Implementierung zu beginnen. Danke

Grimshaw
quelle

Antworten:

4

Wenn die primäre Qualität Ihrer Skriptsprache eine einfache Bindung ist, versuchen Sie es mit AngelScript . Es kann registrierte Funktionen direkt aufrufen, ohne dass Proxy-Funktionen geschrieben werden müssen, und es unterstützt die Aufrufkonventionen einer Vielzahl von Compilern. Die Sprache selbst ähnelt c / c ++, was je nach Situation gut oder schlecht sein kann.

Jari Komppa
quelle
7

Ich habe gute Dinge über LuaPlus gehört . Es umschließt die Low-Level-C-API mit einer höheren C ++ - Version.

Die kommunistische Ente
quelle
4

Solange Sie einigermaßen konventionell binden, wird LuaBind alles tun, was Sie brauchen. Bindungsklassen und -funktionen sind in der Regel ein Einzeilengeschäft pro Funktion. Wenn Sie ein Beispiel möchten, finden Sie hier die zutreffende Datei der Game Engine, an der ich gearbeitet habe (suchen Sie nach Modul (L) für den Start der LuaBind-Benutzeroberfläche). DontKillMeBro <> ist ein kleines System, das ich eingerichtet habe genauer gesagt, zeitliche Objektzerstörung für bestimmte empfindliche Objekte.)

Wenn Sie etwas komplexeres möchten, müssen Sie wahrscheinlich die eigentliche Lua-API verwenden. Zum Glück ist die Lua-API relativ einfach.

ZorbaTHut
quelle
1

Wir verwenden OOLua für Pioneer . Es gibt einen Stapel von Makros, mit denen Sie Lua- "Klassen" an C ++ - Klassen binden. Es hat einiges an Power, ist aber ziemlich unkompliziert. Ich habe keine anderen verwendet, daher kann ich keinen Kommentar zum Vergleich abgeben. Hier ist ein Beispiel .

Rob N
quelle
1

Ich würde mit Händen gehen die vorkompilierten Bibliotheken von Nuclex weiterentwickeln und Dateien für LuaBind einbinden. (wenn Sie mit VS2008 arbeiten)

Da Sie LuaBind mit einigen Boost-Bibliotheken und -Tools erstellen müssen, sparen Sie mit diesem Paket wertvolle Zeit (und möglicherweise Kopfschmerzen, wer weiß). Ich würde sagen, Sie könnten Lua in weniger als einer Stunde zum Laufen bringen, wenn Sie wissen, was Sie tun.

Sie können auch in Betracht ziehen, die Standard-Lua-DLL in eine LuaJIT- DLL zu ändern, wenn Sie nach einem kleinen Leistungsgewinn suchen . Es geht nur darum, die Bibliothek zu kompilieren und die lib / dll zu ersetzen, gegen die Sie in Ihrem Hauptprojekt verlinken. Es ist also ganz einfach.

Viel Glück damit!

tomzx
quelle