Apa perpustakaan yang disarankan untuk menggunakan Lua dari C ++? [Tutup]

13

Saat ini saya sedang merencanakan bagaimana mengintegrasikan Lua scripting di Mesin Game 2D saya, dan saya ingin langsung menuju solusi yang paling memadai untuk membuat kelas dan objek C ++ terpapar.

Saya sudah membaca ini (jika ini membantu Anda membantu): http://lua-users.org/wiki/BindingCodeToLua

Jika Anda memiliki bahasa skrip yang lebih baik untuk direkomendasikan, coba saja; D

Semua bantuan dipersilahkan, saya perlu mengambil solusi terbaik untuk mulai menerapkan Terima kasih

Grimshaw
sumber

Jawaban:

4

Jika kualitas utama bahasa skrip Anda mudah diikat, coba AngelScript . Itu dapat memanggil fungsi terdaftar secara langsung tanpa perlu menulis fungsi proxy, dan mendukung konvensi pemanggilan berbagai kompiler. Bahasa itu sendiri mirip dengan c / c ++, yang mungkin baik atau buruk, tergantung.

Jari Komppa
sumber
7

Saya sudah mendengar hal-hal baik tentang LuaPlus . Itu membungkus API tingkat rendah C ke tingkat yang lebih tinggi C ++ satu.

Bebek Komunis
sumber
4

Selama Anda melakukan penjilidan konvensional yang wajar, LuaBind akan melakukan semua yang Anda butuhkan. Mengikat kelas dan fungsi cenderung menjadi kesepakatan satu baris per fungsi. Jika Anda ingin contoh, inilah file yang berlaku dari mesin gim yang telah saya kerjakan (cari modul (L) untuk permulaan antarmuka LuaBind, DontKillMeBro <> adalah sistem kecil yang saya siapkan untuk membiarkan saya lebih tepatnya waktu penghancuran objek untuk objek sensitif tertentu.)

Jika Anda menginginkan sesuatu yang lebih kompleks, Anda mungkin perlu menggunakan Lua API yang sebenarnya. Untungnya, Lua API cukup sederhana.

ZorbaTHut
sumber
1

Kami menggunakan OOLua untuk Pioneer . Ini memberikan tumpukan makro yang Anda gunakan untuk mengikat Lua "kelas" ke kelas C ++. Itu mendapat sedikit kekuatan tetapi cukup mudah. Saya belum pernah menggunakan yang lain jadi saya tidak bisa mengomentari bagaimana perbandingannya. Ini sebuah contoh .

Rob N
sumber
1

Saya akan pergi ke tangan dengan lucs Nuclex yang sudah dikompilasi dan termasuk file untuk LuaBind. (yaitu jika Anda bekerja dengan VS2008)

Karena LuaBind mengharuskan Anda untuk membuatnya dengan beberapa lib dan alat Boost, paket ini akan menghemat waktu Anda yang berharga (dan mungkin beberapa sakit kepala, siapa tahu). Saya akan mengatakan Anda bisa membuat Lua berjalan dalam waktu kurang dari satu jam jika Anda tahu apa yang Anda lakukan.

Anda juga dapat mempertimbangkan mengubah dll Lua default ke dll LuaJIT jika Anda mencari keuntungan kinerja kecil . Ini hanya masalah mengkompilasi perpustakaan dan mengganti lib / dll yang Anda tautkan di proyek utama Anda, jadi itu sangat mudah.

Dengan itu, semoga berhasil!

tomzx
sumber