현재 2D 게임 엔진에 Lua 스크립팅을 통합하는 방법을 계획 중이며 C ++ 클래스 및 객체를 노출시키는 데 가장 적합한 솔루션으로 바로 가고 싶습니다.
나는 이것을 읽었다 (도움이 도움이된다면) : http://lua-users.org/wiki/BindingCodeToLua
추천 할 수있는 더 나은 스크립팅 언어가 있다면 그것을 찾으십시오 .D
모든 도움을 환영합니다. 감사를 시작하기위한 최상의 솔루션을 선택해야합니다.
현재 2D 게임 엔진에 Lua 스크립팅을 통합하는 방법을 계획 중이며 C ++ 클래스 및 객체를 노출시키는 데 가장 적합한 솔루션으로 바로 가고 싶습니다.
나는 이것을 읽었다 (도움이 도움이된다면) : http://lua-users.org/wiki/BindingCodeToLua
추천 할 수있는 더 나은 스크립팅 언어가 있다면 그것을 찾으십시오 .D
모든 도움을 환영합니다. 감사를 시작하기위한 최상의 솔루션을 선택해야합니다.
답변:
스크립팅 언어의 기본 품질이 쉬운 바인딩이면 AngelScript를 사용해보십시오 . 프록시 함수를 작성할 필요없이 등록 된 함수를 직접 호출 할 수 있으며 다양한 컴파일러의 호출 규칙을 지원합니다. 언어 자체는 c / c ++와 유사하며, 이는 좋거나 나쁠 수 있습니다.
합리적으로 일반적인 바인딩을 수행하는 한 LuaBind 는 필요한 모든 작업을 수행합니다. 바인딩 클래스와 함수는 함수 당 한 줄로 처리되는 경향이 있습니다. 당신은 예를 원하는 경우, 여기에 내가 LuaBind 인터페이스의 시작을위한 모듈 (L에 대한 (보기)에서 작업했던 게임 엔진에서 해당 파일 DontKillMeBro는 <> 나는 나를 수 있도록 임시 변통으로 만들었다 약간의 시스템입니다 특정 민감한 물체에 대한 물체의 정확한 파괴 시간.)
좀 더 복잡한 것을 원한다면 실제 Lua API를 사용해야 할 것입니다. 운 좋게도 Lua API는 상당히 간단합니다.
Nuclex의 사전 컴파일 된 라이브러리 를 살펴보고 LuaBind 용 파일을 포함시킵니다. (즉, VS2008로 작업하는 경우)
LuaBind를 사용하려면 Boost 라이브러리와 도구를 사용하여 빌드해야하므로이 패키지를 사용하면 귀중한 시간을 절약 할 수 있습니다 (아마도 두통이있을 수 있습니다). 당신이하고있는 일을 안다면 루아를 한 시간 안에 달릴 수 있다고 말하고 싶습니다.
약간의 성능 향상 을 원한다면 기본 Lua dll을 LuaJIT dll 로 변경하는 것도 고려할 수 있습니다 . 라이브러리를 컴파일하고 기본 프로젝트에서 링크하는 lib / dll을 바꾸는 것만으로도 매우 쉽습니다.
그것으로, 행운을 빌어 요!