跨平台编译coocs2d-x工程
来源:互联网 发布:em算法应用实例 编辑:程序博客网 时间:2024/05/28 16:17
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环境 待续
下面是份链接博客。
http://www.itnose.net/detail/6090401.html
- 跨平台编译coocs2d-x工程
- coocs2d-x加音效
- coocs2d-x 游戏闪退
- Cocos2d-x学习之搭建coocs2d-x2.1.5并编译到android和ios
- 完成了coocs2d-x richtext 的封装
- 基于coocs2d-x quick 的图形填充
- 【coocs2d-x 3.5】Lua 精灵触摸
- coocs2d-x3.1.3编译错误的解决
- 【Cocos2d-x】coocs2d-x + scoket 解析Json 流程总结
- Cocos2d-x Android平台工程创建+Cygwin
- cocos2d-x 菜鸟学习笔记一(跨平台编译)
- coocs2d-x引擎学习之精灵的拖拽
- coocs2d-x中c++与java互相传值
- coocs2d:使用Cocos2d-x 3.0rc创建项目及打包
- coocs2d-x 集成 极光推送 的一个坑
- Qt工程文件pro资料,qmake高级概念,创建跨平台编译工程
- 各种平台下编译qt工程
- ios平台cocos2d-x+plugin-x工程配置图文记录
- poj 1062 最短路(昂贵的聘礼)
- iptables防火墙原理详解
- MVC,MVP 和 MVVM 的图示
- aoj0118结题报告(太简单了,就不说明了)
- 【POJ 1562】 Oil Deposits
- 跨平台编译coocs2d-x工程
- file标签之保存文件
- 数组第二十二课,String类的常用方法
- dfs
- C++拾遗--malloc free与new delete的同与不同
- (五十九)iOS网络基础之UIWebView简易浏览器实现
- ubuntu下一些常用的命令
- 网球之李娜
- PAT1083 List Grades