Яка бібліотека рекомендована для використання Lua з C ++? [зачинено]


13

В даний час я планую, як інтегрувати сценарії Lua у свій 2D Game Engine, і я хотів би перейти до найбільш адекватного рішення для експонування класів та об'єктів C ++.

Я прочитав це (якщо це допоможе вам допомогти): http://lua-users.org/wiki/BindingCodeToLua

Якщо у вас є краща мова сценаріїв, щоб рекомендувати, перейдіть на неї; D

Вся допомога вітається, мені потрібно підібрати найкраще рішення, щоб почати впроваджувати Дякую

Відповіді:


4

Якщо основну якість вашої мови сценаріїв легко пов'язати , спробуйте AngelScript . Він може зателефонувати зареєстрованим функціям безпосередньо без необхідності записувати проксі-функції, і він підтримує умови виклику найрізноманітніших компіляторів. Мова сама по собі схожа на c / c ++, що може бути хорошою чи поганою річчю, в залежності.



4

Поки ви робите достатньо звичайну прив'язку, LuaBind зробить все необхідне. Зв'язування класів і функцій, як правило, є операцією з однорядкою на функцію. Якщо вам потрібен приклад, ось ось застосовний файл із ігрового двигуна, над яким я працював (шукайте модуль (L) для запуску інтерфейсу LuaBind, DontKillMeBro <> - це невелика система, яку я налаштував, щоб дозволити мені точніше знищення об'єктів часу для певних чутливих об'єктів.)

Якщо ви хочете чогось більш складного, вам, мабуть, знадобиться використовувати власне API Lua. На щастя, API Lua досить простий.


1

Ми використовуємо OOLua для Pioneer . Це дає купу макросів, які ви використовуєте для прив'язки "класів" Lua до класів C ++. Його отримали неабияку потужність, але досить просто. Я не використовував жодних інших, тому не можу коментувати, як вона порівнює. Ось приклад .


1

Я б спустився з Nuclex попередньо і включив файли для LuaBind. (тобто якщо ви працюєте з VS2008)

Оскільки LuaBind вимагає, щоб ви створили його за допомогою певних інструментів і інструментів Boost, цей пакет допоможе вам заощадити цінний час (а може, і головний біль, хто знає). Я б сказав, що ти зможеш змусити Люа бігати менше ніж за годину, якщо ти знатимеш, що ти робиш.

Ви також можете розглянути можливість зміни за замовчуванням Lua dll на dll LuaJIT, якщо ви шукаєте невеликий приріст продуктивності . Це лише питання складання бібліотеки та заміни lib / dll, з яким ви пов'язуєтесь у своєму головному проекті, тому це досить просто.

З цим, удачі!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.