cocos2dx C++工程中使用lua腳本(一):環境搭建

不知不覺已經做了5年的cocos2dx開發了,其中絕大多數時間都是純C++做休閒類遊戲(工作需要),當然閒下來也抽時間擼過cocos的新寵CocosCreator。

一次無意中在cocos2dx的官方文檔中看到了使用lua或者js腳本來擴展C++節點,難道這就是傳說中的C++和lua混合開發的姿勢?

不過官方介紹的很簡單很簡單,幾乎可以說就是提了一下,貌似不願多說一樣。

官方鏈接:https://docs.cocos.com/cocos2d-x/manual/zh/scripting/

興奮的本人,立刻複製粘貼官方代碼,準備跑起來試試。結果各種報錯,因爲用cocos new命令創建的C++工程,默認是沒有lua相關的支持,所以需要自己改C++工程。

由於官方沒有給任何關於C++工程中使用lua腳本的環境搭建教程,所以我就踏上了苦逼的踩坑之路。

網上能收到相關的帖子介紹,不過或多或少都遇到了一些問題,現在我總結下我的成功步驟:

1:拷貝cocos2d-x-3.17.2\cocos目錄下的scripting文件夾放到cocos2dxPro\HelloWordDemo\cocos2d\cocos目錄下

2:拷貝cocos2d-x-3.17.2\external目錄下的lua文件夾放到cocos2dxPro\HelloWordDemo\cocos2d\external目錄下

3:打開C++項目的win32工程,右鍵解決方案->添加->現有項目,然後選擇cocos2dxPro\HelloWordDemo\cocos2d\cocos\scripting\lua-bindings\proj.win32中的libluacocos2d項目。

4:右鍵解決方案->屬性->通用屬性->項目依賴項,勾選libluacocos2d。

5:右鍵啓動項目->添加->引用,勾選libluacocos2d。

6:右鍵啓動項目->屬性->C/C++->常規->附加包含目錄,添加如下路徑:

$(EngineRoot)cocos\scripting\lua-bindings\auto

$(EngineRoot)cocos\scripting\lua-bindings\manual

$(EngineRoot)external\lua\lua

$(EngineRoot)external\lua\tolua

$(EngineRoot)external\lua\luajit\include

做完以上步驟,編譯到最後若libluacocos2d編譯出錯,就繼續執行下面的步驟。

7:右鍵libluacocos2d項目->屬性->生成事件->預先生成事件->命令行。刪除命令(這個項目編譯出錯所以我刪除了這個命令)

做完以上步驟,編譯到最後發現提示無法打開lua51.lib(其實就是沒有這個lib),執行下面的步驟。

8:找到HelloWordDemo\cocos2d\external\lua\luajit\prebuilt\win32目錄下有兩個文件,lua51.dll和lua51.lib。拷貝lua51.lib放到VS2015安裝目錄下\VC\lib下,拷貝lua51.dll放到Windows\SysWOW64目錄下

完成以上步驟,就可以把win32工程跑起來了,踩坑完畢!

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章