2009-10-08 56 views
3

所以我聽說Lua是一種很好的腳本語言,它與C++結合在一起。有沒有人知道有一些很好的資源可供選擇,對於有很多C++經驗的人來說?學習Lua與C++一起使用的資源?

+0

本網站提供有關集成lua和C++的信息,並且似乎與lua 5.2兼容,它與lua 5.0有一些變化http://www.troubleshooters.com/codecorn/lua/lua_c_calls_lua.htm – 2012-12-15 21:14:47

+0

這是一個代碼儘管它使用了較早的lua接口調用,但它可能會有所幫助。 http://www.codeproject.com/Articles/11508/Integrating-Lua-into-C – 2012-12-15 21:18:37

回答

9

你可能想看看toLua ++或Luabind的C++集成。

就學習lua本身而言,Lua書籍甚至Lua參考手冊中的編程不應該超出你的聯盟;請參閱lua網站的documentation部分。

通常的規則適用於:當你開始使用時閱讀很多其他代碼。如果是你的一杯茶,你可以去魔獸世界插件的一些(不可錯過的專業)現實世界的例子。

並聽社區:訂閱一些郵件列表,看看lua-users resources(尤其是wiki)等等。

我在一家遊戲開發公司工作,我們一起主要使用C++和lua。我們實際上並沒有使用Luabind或toLua ++(主要是缺乏時間來測試和整合它們),但我們學到了一些東西:

  • 您需要在創建和根據需要銷燬lua環境(lua_State實例)並保留一個或多個環境;讓他們擺脫可以緩解內存的問題,並提供很好的未受污染的執行環境
  • 利用lua_pcall的註冊調試功能的能力,看到discussion on Gamedev.net
  • 如果你是一個記憶的預算,可以考慮使用lua_setallocf改變分配行爲 - - 將它限制到自己的內存區域以防止碎片化,並利用更高效的小對象分配器(可能是boost :: pool)來減少開銷(earlier answer中的其他想法)
  • 得到好的lua-aware editor;我們在工作中使用SciTE和深紅編輯器
  • 注意垃圾收集器,用各種參數調用gc並查看最適合您的性能和內存要求的內容;我們已經有足夠的遊戲,每幀都是正確的選擇,其他人每幀10%是正確的選擇
  • 當你感到舒適時,聯繫到metatables;改變indexnewindex已經證明我們
  • 哦特別有用,coroutines很性感