cocos2dx-lua_修改源碼流程(cocos2dx-3.10、win7、Cocos Code IDE1.2)


以下是在cocos2dx-3.10、win7、Cocos Code IDE1.2下
假定你已經配置好了cocos2dx的環境。


1.修改源代碼步驟
(1)在Cocos/Cocos2d-x/cocos2d-x-3.10/extensions/assets-manager/中修改了源代碼
AssetsManagerEx.h
AssetsManagerEx.cpp
Manifest.h
Manifest.cpp


(2)在Cocos/Cocos2d-x/cocos2d-x-3.10/cocos/scripting/lua-bindings/auto/中修改
lua_cocos2dx_extension_auto.cpp


直接查找 lua_cocos2dx_extension_AssetsManagerEx_create


在當前路徑的api中修改
AssetsManagerEx.lua


(3)在Cocos/Cocos2d-x/cocos2d-x-3.10/cocos/js-bindings/auto/中修改
jsb_cocos2dx_extension_auto.cpp


直接查找 js_cocos2dx_extension_AssetsManagerEx_create


注意:我們是使用(4)中的cocos命令重新生成預編譯文件的,若你修改的函數是與Lua相關的,
  那么你同時要修改js相關的代碼,否則會導致(4)生成預編譯庫失敗。


(4)生成預編譯庫
設置你的環境變量
COCOS_CONSOLE_ROOT D:\Cocos\Cocos2d-x\cocos2d-x-3.10\tools\cocos2d-console\bin


在win7上打開命令行工具。
選輸入以下確定你可以使用cocos:
cocos -h


然后,根據你電腦的情況輸入:
cocos gen-libs -p win32 --vs 2013 -m debug


注意:cocos gen-libs的語法可到以下網址查看
http://www.cocos2d-x.org/wiki/Cocos_gen-libs


-e后加引擎路徑
-p后加:ios, mac, android, win32     若同時多個 -p ios -p android
-m后加:debug, release
--vs后加:2013,2015  默認自動查找合適的vs版本
--appabi后加:x86, armeabi, armeabi-v7a  默認armeabi,若同時多個 armeabi:x86


生成android的預編譯庫:
cocos gen-libs --vs 2013 -p android


注意:請查看你的環境變量,比如你設定了
COCOS_CONSOLE_ROOT D:\Cocos\frameworks\cocos2d-x-3.8\tools\cocos2d-console\bin
那么在沒有指定引擎路徑時,就會使用這個環境變量指定的地址中的
D:\Cocos\frameworks\cocos2d-x-3.8作為引擎路徑。
此時,若我使用以下命令編譯
cocos gen-libs -p win32 --vs 2013 -m release
編譯成功后,會在Cocos/frameworks/cocos2d-x-3.8/prebuild/win32下生成新的預編譯文件。


cocos2dx引擎自帶的預編譯文件是release的,若你想生成debug的,只需要執行如下:
cocos gen-libs -p win32 --vs 2013 -m debug
使用以上命令,不管是release、debug都會覆蓋原來的prebuild/win32下的文件,請注意保存文件。


2.在Cocos Code IDE中調試
2.1.若你選擇是用Framework Mode,則你在Cocos Code IDE中運行的模擬器都是使用的是frameworks下的代碼,
若你想在這里使用修改了源代碼的函數,那你就要對frameworks下的代碼做以上同樣的修改和編譯。
注意:Cocos Code IDE1.2中使用Engine Mode會提示“未在cocos2dx目錄下找到cocos console”。


我們需要執行以下步驟(與上面的步驟相同):
(1)在Cocos/frameworks/cocos2d-x-3.8/extensions/assets-manager/中修改了源代碼
AssetsManagerEx.h
AssetsManagerEx.cpp
Manifest.h
Manifest.cpp


(2)在Cocos/frameworks/cocos2d-x-3.8/cocos/scripting/lua-bindings/auto/中修改
lua_cocos2dx_extension_auto.cpp


直接查找 lua_cocos2dx_extension_AssetsManagerEx_create


在當前路徑的api中修改
AssetsManagerEx.lua


(3)在Cocos/frameworks/cocos2d-x-3.8/cocos/scripting/js-bindings/auto/中修改
jsb_cocos2dx_extension_auto.cpp


直接查找 js_cocos2dx_extension_AssetsManagerEx_create


(4)生成預編譯庫
同1中的(4)


2.2.修改引用庫
(1)在Cocos Code IDE/configuration/org.eclipse.osgi/bundles/61/1/.cp/resource下創建
cocos2dx-3.8文件夾,仿照同目錄的cocos2dx-3.2,
將Cocos/frameworks/cocos2d-x-3.8/cocos/scripting/lua-bindings/auto中的api文件夾壓縮為api.zip
並創建一個cocos2dx-3.8.rockspec文件,內容仿照cocos2dx-3.2下的cocos2dx-3.2.rockspec。


(2)選中項目名字,右擊鼠標,在彈出菜單中選"屬性",在屬性窗口選Lua,再選Build Path,
在右側選Libraries,可以在右側區域看到如下:
Cocos2dx 3.2
Lua5.1


默認Cocos Code IDE使用Cocos2dx 3.2作為Lua的庫,這也是在做了以上修改源代碼的操作,並重新編譯,
運行項目卻發現修改的函數沒有起效的原因。


將Cocos2dx 3.2刪除,點擊"Add Libraries",點擊"下一步",在彈出窗口點擊“Configure”,在彈出窗口
點擊"New",在彈出窗口輸入Cocos2dx 3.8,點擊“確定”,然后再點擊"Add ZIPs",會直接打開(1)中我們
創建的位置,選擇api.zip,點擊“確定”,點擊“完成”。
可以在右側區域看到如下:
Cocos2dx 3.8
Lua5.1


用同樣的方法可以創建Cocos2dx 3.10的庫。


2.3.調試項目
(1)創建Cocos Lua項目
點擊Cocos Code IDE1.2的“文件”,點擊“新建”,點擊“項目”,在彈出窗口點擊“Cocos Lua工程”,
點擊“下一步”,設置項目名字,點擊“完成”。


(2)創建模擬器
點擊Cocos Code IDE1.2頂部快捷功能菜單中的“構建模擬器”按鈕,在彈出窗口點擊"下一步",再點擊
“構建win32模擬器”,點擊“生成”。
成功后,會在項目目錄下創建一個simulator/win32目錄,其下會有一個以你項目命名的exe文件,這就
是你的win32模擬器。另外,此目錄下還有一些dll文件,這些dll文件就是從
Cocos/frameworks/cocos2d-x-3.8/prebuilt/win32下拷貝過來的。


(3)以win32 支持斷點運行項目
在MainScene.lua中的MainScene:onCreate()中調用你修改過的函數,並打斷點。
點擊Cocos Code IDE1.2頂部快捷功能菜單中的“win32 支持斷點”按鈕。
按F5按鈕進行單步調試,若你調用的函數有錯誤,就會報錯。
若沒有錯誤,會顯示cocos2dx的默認logo。
此外,在frameworks/runtime-src/proj.win32下會生成一個Debug.win32文件夾,其中包含了從
Cocos/frameworks/cocos2d-x-3.8/prebuilt/win32下拷貝過來的預編譯庫。


======================================
以下是在cocos2dx-3.9、mac下


1.查看環境變量:
打開終端,輸入 
vim .bash_profile


確定有如下的配置:
export COCOS_CONSOLE_ROOT=/Applications/Cocos/frameworks/cocos2d-x-3.9/tools/cocos2d-console/bin


2.修改源代碼步驟
(1)在Cocos/frameworks/cocos2d-x-3.9/extensions/assets-manager/中修改了源代碼
AssetsManagerEx.h
AssetsManagerEx.cpp
Manifest.h
Manifest.cpp


(2)在Cocos/frameworks/cocos2d-x-3.9/cocos/scripting/lua-bindings/auto/中修改
lua_cocos2dx_extension_auto.cpp


直接查找 lua_cocos2dx_extension_AssetsManagerEx_create


在當前路徑的api中修改
AssetsManagerEx.lua


(3)在Cocos/frameworks/cocos2d-x-3.9/cocos/scripting/js-bindings/auto/中修改
jsb_cocos2dx_extension_auto.cpp


直接查找 js_cocos2dx_extension_AssetsManagerEx_create


3.生成預編譯庫
打開終端,輸入以下,確定你可以使用cocos:
cocos -h
然后輸入:
cocos gen-libs -p ios -m release


成功生成后,在Cocos/frameworks/prebuilt/ios下會生成:
libcocos2d iOS.a
libjscocos2d iOS.a
libluacocos2d iOS.a
libsimulator iOS.a


生成android的預編譯庫:
cocos gen-libs -p android -m release


生成mac的預編譯庫:
cocos gen-libs -p mac -m release
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM