1、文件路徑問題。鑑於我們要實現跨平臺處理,就要處理不同IDE對於文件路勁的管理。在VS中,代碼管理完全按照物理路徑去管理,剩下的部分是資源路徑問題。在win7-vs2012以上的版本(vs110_xp對應版本設置再去搜索吧,已過去的工具就該放棄)可以選擇在Debugging中的Working Directory的值從$(ProjectDir)設置爲$(ProjectDir)../Resources。但這要求每次增加資源或修改文件名也要同步在mac工作平臺修改文件映射。
爲放棄上面單平臺管理的方式,於是cocos的團隊在引擎中增加了文件管理工具FileUtils。我們只需要在在代碼中增加一句:
AppDelegate::AppDelegate() {
FileUtils::getInstance()->addSearchPath("../Resources",true);
}
這樣子每次搜索路徑時都會優先查找Resources文件夾的資源。
剩餘的則是Android和Mac的代碼文件組織。
Mac環境:
在Xcode中新建一個group對應相同的物理文件名,然後把文件夾下面的文件拉入項目文件樹中,選擇的方式是folder references即可。或者嘗試直接整個文件夾以folder references的形式引入工程(未嘗試)。
folder references:保持原先的路徑物理結構,這樣子才能適合多平臺統一的頭文件路徑
group:類似於vs的文件篩選器,虛擬的路徑,如果以此方式引入,則文件相對於工程的路徑是同級路徑,即處在同一個父目錄下。
Android環境:
修改build_native.py中資源路徑:
def copy_resources(app_android_root):
# remove app_android_root/assets if it exists
assets_dir = os.path.join(app_android_root, "assets")
if os.path.isdir(assets_dir):
shutil.rmtree(assets_dir)
# copy resources
os.mkdir(assets_dir)
resources_dir = os.path.join(app_android_root, "")''' 把原路徑去除
if os.path.isdir(resources_dir):
copy_files(resources_dir, assets_dir)
這在邏輯上固然增加了查找的時間,實際上可以自己手動讀取配置Resources文件夾下的一個配置文件根據平臺設置真正的資源路徑。之後做文件路勁搜索時只使用這個唯一路徑,從而減少在FileUtils中做路徑測試的時間。
2、prefix head問題。在Xcode6中把cocos自己生成的路徑刪除掉,或者對比一下testCpp的配置文件就發現:無論是ios還是mac的工程,prefix head此項爲空。
3、Linux環境 待續
下面是份鏈接博客。