2014年11月27日 星期四

Tegra Nsight base Cocos-x Visual Studio專案建製心得分享

起源:
  由於不想把執行cocos命令所產生出來不乾淨的專案全部上版本控管(
超過300 magabytes),並為了之後程式碼共用及方便維護,於是踏上了客製化建製
cocos android專案之旅…

目標:

  1. 在Visual Studio進行C++ Source Code除錯
  2. 在Visual Studio進行Java Source Code除錯
  3. 乾淨地將Cocos-x SDK及User APP切割Source Code及專案設定,以方便進行版本控管及
    後續程式碼維護
建製流程:
  1. 下載並安裝Nevdia Tegra Nsight(使用版本為tadp-3.0r3-windows.exe)
  2. 在NVPACK\android-sdk-windows Folder下執行SDK Manager.exe,並下載Android API 10
    的版本,Cocos2d-x預設會建立10這個版本
  3. 下載Cocos2d SDK(使用版本為cocos2d-x-3.3rc0,cocos2d-x-3.2似乎Build Android專案有
    問題…)
  4. 下載並安裝python-2.7(cocos2d-x使用此版本)
  5. 確認環境變Path有包含Python27的路徑,並增加cocos2d-x的cocos.bat路徑(
    例:D:\cocos2d-x-3.3rc0\tools\cocos2d-console\bin
  6. 用command line dos視窗或自行撰寫bat檔執行cocos.bat建立專案:
    例:cocos new TestAPP -p com.SmallBurger.TestAPP -l cpp -d D:\CocosFramework\TestAPP\proj.android
  7. 將產生出來的proj.android放置到你想要的專案路徑
  8. 在proj.android Folder下使用Tgera Nsight wizzard建立Import An ndk-build Android Project
  9. Import proj.android reference data(Import所有的資料)
    PS:並修改所產生的Folder改名為VSProject(此步驟非必要)
  10. 在proj.android Folder下,用command line dos視窗或自行撰寫bat檔執行android命令來更新專案及所參照的Cocos SDK Android專案設定:
    例:android update project -p . --target android-15 --library ../../../cocos2d-x-3.3rc0/cocos/platform/android/java
  11. 調整Android.mk(設定cocos SDK的import-add-path-一定要是相對路徑)
    a.設定cocos SDK的import-add-path,例:
     $(call import-add-path,$(LOCAL_PATH)/../../../../cocos2d-x-3.3rc0)
     $(call import-add-path,$(LOCAL_PATH)/../../../../cocos2d-x-3.3rc0/external)
     $(call import-add-path,$(LOCAL_PATH)/../../../../cocos2d-x-3.3rc0/cocos)
    b.設定User自定函式庫程式碼路徑(source code及head files路徑),例:
     #CocosWrapper Reference Source
     LOCAL_CPP_LIST := $(wildcard $(LOCAL_PATH)/../../../CocosWrapper/Source/*.cpp)
     #CocosWrapper Reference Include
     LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../../CocosWrapper/Include
    c.設定User APP reference source路徑(source code及head files路徑),例:
     #APP Reference Source
     LOCAL_CPP_LIST += $(wildcard $(LOCAL_PATH)/../../Source/*.cpp)
     #APP Reference Include
     LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../Include
    PS:b及c步驟非必要,請自行調整。
  12. 移除掉main.cpp(非必要,請自行調整)
  13. 在VS專案加入自己的Source Code.
    可以加入NativeSource這個Filter來放Source Code,此步驟的目的為驅動Android.mk及
    Application.mk進行編譯(至少要加入一個cpp才能進行編譯)。
  14. 編譯專案並進行測試
其他:
  筆者是將main.cpp裡cocos_android_app_init的函式實作移到自己的Framework框架(我
是叫CocosWrapper),也就是希望能共用cocos_android_app_init的程式碼,不要每一個APP專
案都有這段相同的程式碼,除此之外,我也希望能導到自己CocosWrapper的APP框架,達到
不同APP專案共用APP框架構程式碼的目標,比方:
//AppDelegate *pAppDelegate = new AppDelegate();
//改成
//User需要自行實作CBaseAPP::Create(void)這個函式,要new 自己APP的實體,比方
//CTestAPP : public CBaseAPP
//…
//CBaseAPP* CBaseAPP::Create(void)
//{
// return new CTestAPP;
//}
CBaseAPP* pTheAPP = CBaseAPP::Create();
pTheAPP->Startup();
pTheAPP->Shutdown();
delete pTheAPP;
pTheAPP = NULL;

Dream continues in...

沒有留言:

張貼留言