书生教你cocos2d-x入门篇(四)—资源适配

上篇博文讲了分辨率适配策略地址是(http://luoposhusheng.blog.51cto.com/8148702/1322544)

实现了一套代码适应多种分辨率。这篇博文讲解如果实现适配多套资源。源代码我上传在附件中,大家自己下载。

什么意思呢?譬如我们的例子用的图是480X320的,按照我们的适配策略,在iphone4(960X640分辨率)上,整个图像会被放大一倍。可能策划会觉得效果不好,有点模糊。就给了一套新图,每张图大小刚好是原本资源的2倍大。希望在iphone4上使用大图,去除模糊。看我的资源目录:

clip_p_w_picpath002

我搞了一个hd文件夹,里面有一套新资源,按照960X640分辨率制作的,为了区别,我还在每张图上打了个“hd”标签。

现在我们希望在960X640分辨率下,使用这种大图。

先看效果

书生教你cocos2d-x入门篇(四)—资源适配_第1张图片

OK,是我们要的效果,下面讲解代码:

书生教你cocos2d-x入门篇(四)—资源适配_第2张图片

代码量很少,总共就几句话,2个知识点

1.资源加载路径:

CCFileUtils::sharedFileUtils()->setSearchPaths(searchPath);

这个接口让我们传入一个std::vector searchPath;

本例中,我们的searchPath里就只有一个”hd”

当进行了这个设置后,程序在加载资源时,会先在我们设置的路径目录里寻找资源,找不到才从默认目录下加载。

由于我们设置了当分辨率为960X640时,“hd”为优先加载目录,所以在960X640的分辨率下,程序会优先加载hd文件夹里的文件。

2. pDirector->setContentScaleFactor(2);

如果我们注释掉这句话,我们的画面是这样的

书生教你cocos2d-x入门篇(四)—资源适配_第3张图片

这是应该的,毕竟图是原本图片的2倍大。而精灵的默认逻辑大小跟图片大小是相同的。

因子是1比1.

pDirector->setContentScaleFactor(2);

加了这一句后,因子改为2,,所有的精灵的大小变为之前的一半大,就是我们要的效果了。

书生教你cocos2d-x入门篇(四)—资源适配_第4张图片

大家可以模仿着写一遍,几句代码而已很简单,写一遍就熟悉了。

实际做项目的时候,应该是根据设计需求,当分辨率在某些区间内的时候,修改对应的搜寻目录和因子系数,不会像我这样写的刚好相等。

PS:本来以为写资源适配要费些笔墨,实际写的时候发现原来就这么点内容,就让我偷回懒吧,哈哈。