Jaka jest zalecana biblioteka do korzystania z Lua z C ++? [Zamknięte]

13

Obecnie planuję zintegrować skrypty Lua z moim silnikiem gier 2D i chciałbym przejść od razu do najbardziej odpowiedniego rozwiązania dla ekspozycji klas C ++ i obiektów.

Przeczytałem (jeśli to pomoże): http://lua-users.org/wiki/BindingCodeToLua

Jeśli masz lepszy język skryptowy do polecania, wybierz go; D

Wszelka pomoc jest mile widziana, muszę wybrać najlepsze rozwiązanie, aby rozpocząć wdrażanie Dzięki

Grimshaw
źródło

Odpowiedzi:

4

Jeśli podstawową jakością Twojego języka skryptowego jest łatwe wiązanie, wypróbuj AngelScript . Może wywoływać zarejestrowane funkcje bezpośrednio, bez potrzeby pisania funkcji proxy, i obsługuje konwencje wywoływania wielu różnych kompilatorów. Sam język jest podobny do c / c ++, w zależności od tego, co może być dobre lub złe.

Jari Komppa
źródło
7

Słyszałem dobre rzeczy o LuaPlus . Opakowuje niskopoziomowy interfejs API C na wyższy poziom C ++.

Kaczka komunistyczna
źródło
4

Tak długo, jak wykonujesz dość konwencjonalne oprawianie, LuaBind zrobi wszystko, czego potrzebujesz. Wiązanie klas i funkcji jest zwykle umową z jedną linią na funkcję. Jeśli chcesz przykład, oto odpowiedni plik z silnika gry, nad którym pracowałem (poszukaj modułu (L) na początek interfejsu LuaBind, DontKillMeBro <> to mały system, który przygotowałem, aby mi pozwolić a ściślej niszczenie obiektów w czasie dla niektórych wrażliwych obiektów).

Jeśli chcesz czegoś bardziej złożonego, prawdopodobnie będziesz musiał użyć rzeczywistego interfejsu Lua API. Na szczęście interfejs Lua API jest dość prosty.

ZorbaTHut
źródło
1

Używamy OOLua dla Pioneer . Daje stos makr, których używasz do wiązania „klas” Lua z klasami C ++. Ma dość mocy, ale jest dość prosty. Nie korzystałem z żadnych innych, więc nie mogę komentować, jak to się porównuje. Oto przykład .

Rob N.
źródło
1

Chciałbym wziąć udział w prekompilowanych bibliotekach Nuclex i dołączyć pliki dla LuaBind. (to znaczy, jeśli pracujesz z VS2008)

Ponieważ LuaBind wymaga zbudowania go za pomocą niektórych bibliotek i narzędzi Boost, ten pakiet pozwoli ci zaoszczędzić cenny czas (i może trochę bólu głowy, kto wie). Powiedziałbym, że możesz uruchomić Luę w mniej niż godzinę, jeśli wiesz, co robisz.

Możesz również rozważyć zmianę domyślnej biblioteki DLL Lua na bibliotekę DLL LuaJIT, jeśli szukasz niewielkiego wzrostu wydajności . To tylko kwestia skompilowania biblioteki i zastąpienia biblioteki lib / dll, z którą łączysz się w głównym projekcie, więc jest to dość łatwe.

Z tym powodzenia!

tomzx
źródło