前段时间cocos2dx更新了最新版本号cocos2d2.0x2.0.2。也从这个版本号開始对于资源载入与管理都改变了策略。
在之前的载入方式都是通过沿用与cocos2d-iphone一样的载入资源方式,对于图片名后加入-hd,-ipad,-ipadhd方式,当用户开启项目的高清视网膜后就能够默认寻找相应的资源。可是从cocos2d2.0x2.0.2版本号開始,资源载入策略不在如此了。对跨平台整合不清楚的请看cocos2dx最新2.x版本号跨平台整合NDK+Xcode
最新资源载入策略的机制例如以下:
首先从CCFileUtils的setResourceDirectory设置的文件夹中去寻找,假设找不到则会Resources/文件夹下找。
比如:
1) 设置文件夹:
CCFileUtils::sharedFileUtils()->setResourceDirectory(“abc”);
当创建一个精灵时:
CCSprite * spr = CCSprite::create(“himi.png”);
Cocos2dx首先会到Resources/abc文件夹下寻找“himi.png”,假设找不到将回到Resources文件夹下寻找“himi.png”。
因此我们一般在AppDelegate.cpp的applicationDidFinishLaunching函数中打开高清视网膜后。加入例如以下代码:
if (target == kTargetIpad){//假设是Ipad
if (pDirector->enableRetinaDisplay(true)){ //假设开启高清视网膜
CCFileUtils::sharedFileUtils()->setResourceDirectory("../ipadhd");
}else {
CCFileUtils::sharedFileUtils()->setResourceDirectory("../ipad");
}
}else if (target == kTargetIphone) {//假设是iphone
if (pDirector->enableRetinaDisplay(true))
{
CCFileUtils::sharedFileUtils()->setResourceDirectory("../hd");
}
项目默认文件夹为Resources,这里创建的hd、ipadhd、ipad的文件夹与Resources同一级,所以这里设置文件夹为”../hd” ,”../ipad”,”../ipadhd”
附:
设备枚举变量例如以下:
kTargetWindows: window系统
kTargetLinux: linux系统
kTargetMacOS: mac os系统
kTargetAndroid: Android系统
kTargetIphone: iOS系统-iphone&itouch
kTargetIpad: iOS系统-Ipad
kTargetBlackBerry: 黑莓系统
项目文件夹例如以下图3.14.3.1所看到的: