前置条件
这里假定读者已经能够使用 cocos2d-wophone 进行游戏的开发,并且可以通过从硬盘读取资源文件。如果还不清楚这些的话,那么请移步到 这里 补充相关的知识。
本文中使用的示例代码、截图等都是基于 cocos2d-x 源码中的 tests 工程的,为了在阅读本文时能够更好的明白各个操作,建议您下载 cocos2d-x的源码 ,并按照如何在WoPhone上运行tests工程这篇文章将 tests工程运行起来。
如何操作
对于如何让自己的代码可以从zip文件中读取相应的资源文件,操作是很简单的,只需要两个步骤。这里以 test wophone 工程为例,步骤如下:
首先将 tests/Res 目录下的所有的资源文件打包成 TestCocos2dx.zip 文件,并且需要将该文件放到指定的目录(见第二步中示例代码)。这里为了让代码中使用资源文件时所用的参数不需要修改,需要保证 zip 文件中的目录结构如下图:
然后在 AppDelegate 类的 applicationDidFinishLaunching 函数中添加如下代码即可:
1#if defined(CCX_PLATFORM_WOPHONE)
2 // set the resource zip file
3 CCFileUtils::setResource("TestCocos2dx.zip");
4#endif
cocos2d-wophone 目前支持的几种资源文件读取方式对比
读取方式 | 优点 | 缺点 |
---|---|---|
硬盘读取 | 实现简单,只需要调用 CCFileUtils::setResource() 接口,通过第二个参数设置资源文件路径即可。 | 1. 在打包安装程序时,很难将数据文件进行打包; 2. 资源文件未完全封闭 |
使用 zip 文件 | 1. 实现简单,只需要调用 CCFileUtils::setResource() 接口通过***个参数设置 zip 文件的名称; 2. 打包安装程序简单,只要将 zip 文件当做数据文件打包就可以了。 |
资源文件未完全封闭 |
多种方式并存时的调用顺序
当在代码中,多种资源文件读取方式并存时,检查的顺序如下:
「从 zip 文件读取」->「从硬盘读取」
这里需要注意的一点是,当指定的 zip 文件存在时,如果需要使用的资源文件在 zip 文件中无法找到,那么将不会再从硬盘中查找资源文件。
WoPhone 资源文件的存放路径
根据 CCFileUtils::setResource() 函数第二个参数值的不同,需要将资源文件放到不同的目录,列表如下:
参数值 | 模拟器路径 | 真机路径 |
---|---|---|
NULL | D:/Work7/NEWPLUS/TG3/APP | 与应用的 .so 文件同目录 |
开发者设定的目录 | 开发者设定的目录 | 开发者设定的目录 |