以下是在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
假定你已經配置好了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