cocos2d-lua整合到ios工程,即在ios原生應用中可以直接玩cocoslua開發的遊戲
阿新 • • 發佈:2018-11-14
前段時間配合其他部門把cocostudio做的動畫拿到ios原生引用中播放,把cocos2d-x做成靜態庫並保留了一個頭檔案給ios那邊呼叫,可以實現ios呼叫cocos2d-x,最近又要實現cocos2d-lua版本的,思路差不多,不過最後是呼叫的指令碼,可以把指令碼直接看做資源,坑也有幾看踩踩填填就好啦。
我用的是cocos2d-x 3.12版本,如其他版本遇到不同的問題,也可以及時反饋,大家一起解決 ,共同進步哈。
1、生成libluacocos2d iOS.a 靜態庫,步驟如下
(1)、如圖"001"開啟cocos2d工程目錄下的cocos2d_lua_bindings.xcodeproj
(2)、如圖"002"這裡選擇libluacocos2d iOS ,然後點選Edit Scheme 選擇release模式編譯
(3) 、不出意外的話,編譯成功後,如圖位置會出現 libluacocos2d iOS.a 檔案,選中它,在如圖 "003" 最右邊的位置會看到檔案位置,然後開啟 Finder , 按下 command + shift + G
進入檔案搜尋,如圖
"0031"
把剛剛那個檔案地址貼上進去,找到
libluacocos2d iOS.a
檔案如圖
"0032"
,拷貝到如圖所示工程目錄下的
cocos2d-x/build
目錄下如圖
"0033"
。
2 、生成 libsimulator.a 靜態庫,步驟如下
(1) 、如圖 "2(1)" 開啟 cocos2d 工程目錄下的 libsimulator.xcodeproj
(2)、同(1)步驟生成libsimulator.a靜態庫,也拷貝到工程目錄下的cocos2d-x/build目錄下
3 、生成 libcocos2d.a 靜態庫,步驟如下 (1) 如圖 "3(1)" 把 Classes 檔案拷貝到工程目錄下的 cocos2d-x/build 目錄下,開啟 cocos2d_libs.xcodeproj
(2) 如圖 "3(2)" "3(21)" 新增 Classes 到工程中 , 這裡按圖示勾選
(3) 同樣的方式把之前生成的 libluacocos2d iOS.a , libsimulator.a 也新增進來
(4) 如 1(2) 的步驟選擇 release 模式編譯
(5) 如圖 "3(5)" 選中 PROJECT 後在 User Header Search Paths 裡新增相應標頭檔案目錄,不然會出現各種找不到標頭檔案的錯誤。
(6) 如圖 "3(6)" 選中 TARGETS 後在 User Header Search Paths 裡新增相應標頭檔案目錄。
(7) 如圖 "3(7)" 把 .m .cpp 檔案都拖到 Compile Sources 裡面
(8) 如圖 "3(8)" 把 animationManager.h 檔案拖到 Header 的 public 中,其他標頭檔案拖到 Project 裡
(9) 執行 Run 編譯,不出意外的話會生成一個如圖 "3(9)"libcocos2d iOS.a 檔案
4 、 (1) 如圖 "4(1)" 拷貝靜態庫 libcocos2d iOS.a 和標頭檔案 AnimationManager.h 到 ios 專案工程根目錄下
(2) 並新增到專案中如圖 "4(2)".
(3) 如圖 "4(3)" 根據 cocos2d 工程給 ios 工程新增相應的庫
(4) 把cocos2d-lua工程下的Resources整個拷貝到ios工程根目錄下,以group的方式如圖"4(4)"匯入Resources,刪除掉裡面的檔案, 再把裡面的檔案包括src和res等以reference的方式新增進來如圖"4(42)",使其資料夾變成藍色(重點)如圖"4(43)"
(5) 如圖 "4(5)" 在需要呼叫 cocos2d 的類中匯入標頭檔案 AnimationManager.h, 並呼叫相應介面如圖 "4(51)" ;
(6) 如圖 "4(6)" 修改當前呼叫的類的字尾名為 .mm
(7) 如圖 "4(7)" 注意修改模式為 release
(8) 在 other linker flags 中新增 -pagezero_size 10000 -image_base 100000000 參考 https://segmentfault.com/a/1190000005021419
(9) 執行在這裡會呼叫 cocos2d 介面
我用的是cocos2d-x 3.12版本,如其他版本遇到不同的問題,也可以及時反饋,大家一起解決 ,共同進步哈。
1、生成libluacocos2d iOS.a 靜態庫,步驟如下
(1)、如圖"001"開啟cocos2d工程目錄下的cocos2d_lua_bindings.xcodeproj
(2)、如圖"002"這裡選擇libluacocos2d iOS ,然後點選Edit Scheme 選擇release模式編譯
(3) 、不出意外的話,編譯成功後,如圖位置會出現 libluacocos2d iOS.a 檔案,選中它,在如圖 "003" 最右邊的位置會看到檔案位置,然後開啟 Finder , 按下 command + shift + G
2 、生成 libsimulator.a 靜態庫,步驟如下
(1) 、如圖 "2(1)" 開啟 cocos2d 工程目錄下的 libsimulator.xcodeproj
(2)、同(1)步驟生成libsimulator.a靜態庫,也拷貝到工程目錄下的cocos2d-x/build目錄下
3 、生成 libcocos2d.a 靜態庫,步驟如下 (1) 如圖 "3(1)" 把 Classes 檔案拷貝到工程目錄下的 cocos2d-x/build 目錄下,開啟 cocos2d_libs.xcodeproj
(2) 如圖 "3(2)" "3(21)" 新增 Classes 到工程中 , 這裡按圖示勾選
(3) 同樣的方式把之前生成的 libluacocos2d iOS.a , libsimulator.a 也新增進來
(4) 如 1(2) 的步驟選擇 release 模式編譯
(5) 如圖 "3(5)" 選中 PROJECT 後在 User Header Search Paths 裡新增相應標頭檔案目錄,不然會出現各種找不到標頭檔案的錯誤。
(6) 如圖 "3(6)" 選中 TARGETS 後在 User Header Search Paths 裡新增相應標頭檔案目錄。
(7) 如圖 "3(7)" 把 .m .cpp 檔案都拖到 Compile Sources 裡面
(8) 如圖 "3(8)" 把 animationManager.h 檔案拖到 Header 的 public 中,其他標頭檔案拖到 Project 裡
(9) 執行 Run 編譯,不出意外的話會生成一個如圖 "3(9)"libcocos2d iOS.a 檔案
4 、 (1) 如圖 "4(1)" 拷貝靜態庫 libcocos2d iOS.a 和標頭檔案 AnimationManager.h 到 ios 專案工程根目錄下
(2) 並新增到專案中如圖 "4(2)".
(3) 如圖 "4(3)" 根據 cocos2d 工程給 ios 工程新增相應的庫
(4) 把cocos2d-lua工程下的Resources整個拷貝到ios工程根目錄下,以group的方式如圖"4(4)"匯入Resources,刪除掉裡面的檔案, 再把裡面的檔案包括src和res等以reference的方式新增進來如圖"4(42)",使其資料夾變成藍色(重點)如圖"4(43)"
(5) 如圖 "4(5)" 在需要呼叫 cocos2d 的類中匯入標頭檔案 AnimationManager.h, 並呼叫相應介面如圖 "4(51)" ;
(6) 如圖 "4(6)" 修改當前呼叫的類的字尾名為 .mm
(7) 如圖 "4(7)" 注意修改模式為 release
(8) 在 other linker flags 中新增 -pagezero_size 10000 -image_base 100000000 參考 https://segmentfault.com/a/1190000005021419
(9) 執行在這裡會呼叫 cocos2d 介面