关于Cocos2d-x2.1.x与CocosBuilder3.0a 的自动资源目录摆放
来源:互联网 发布:泡泡堂单机版mac 编辑:程序博客网 时间:2024/05/16 14:23
关于Cocos2d-x2.1.x与CocosBuilder3.0a 的自动资源目录摆放
目录(?)[+]
引言:
ccb3.0的例子中, 有两个clickme 的图片, 均放到了根目录的resources-auto 中
ccb会自动把这些资源缩到X售到发行目录resources-iphone 等等中
为我们开发多平台多设备提供了非常便利的支持,本书书说简短,感谢两个字我就不说了, 怪占篇幅的!
方案:
但是文件多了的话, CCB中会显的比较乱, 所以我需要在ccb的资源中创建目录, 把每个场景的资源分开来
注意:resources-auto中不支持创建子目录, 所以
我们在CCB的根目录下创建一个新的场景目录,并在该目录下创建resources-auto目录,然后把要缩放的资源放到这个目录中
这下CCB就可以将我们的资源自动缩放到不同的目录下了!!!
问题:
但是在程序中,还有一个问题,由于在
CCB中编译的资源被重定向到了子目录中如:LoginScene/xxxxxx.png ,而
自动目录确在文件夹:LoginScene/resources-iphone/xxxxxx.png 中, 所以程序启动的时候又找不到这个资源了, 既使我们设置程序目录
vecFindPath.push_back("Published-iOS/LoginScene/resources-iphone");
CCFileUtils::sharedFileUtils()->setSearchPaths(vecFindPath);
解决:
文件:CCNodeLoader.cpp
函数:CCNodeLoader::parsePropTypeSpriteFrame()
原资源找不到的报错代码:
spriteFile = pCCBReader->getCCBRootPath() + spriteFile;
CCTexture2D * texture = CCTextureCache::sharedTextureCache()->addImage(spriteFile.c_str());
CCRect bounds =CCRectMake(0,0, texture->getContentSize().width, texture->getContentSize().height); <--这里空指针异常
spriteFrame =CCSpriteFrame::createWithTexture(texture, bounds);
修正后的重定向资源代码:if (spriteSheet.length() == 0)
{
spriteFile = pCCBReader->getCCBRootPath() + spriteFile;
//查找根目录,(自动资源已通过setSearchPaths重定向到相对根目录) 另外注意这里要优先找我们的目录,否则加载效率会大降
char*p = strrchr(spriteFile.c_str(), '/')+1;
std::string spriteFileAuto = pCCBReader->getCCBRootPath() + p;
CCTexture2D * texture = CCTextureCache::sharedTextureCache()->addImage(spriteFileAuto.c_str());
if(texture==NULL)
{
CCTextureCache::sharedTextureCache()->addImage(spriteFile.c_str());
}
CCRect bounds = CCRectMake(0, 0, texture->getContentSize().width, texture->getContentSize().height);
spriteFrame = CCSpriteFrame::createWithTexture(texture, bounds);
}
else
{
...
}
- 关于Cocos2d-x2.1.x与CocosBuilder3.0a 的自动资源目录摆放
- 关于Cocos2d-x2.1.x与CocosBuilder3.0a 的自动资源目录摆放
- 关于Cocos2d-x2.1.x与CocosBuilder3.0a 的自动资源目录摆放
- cocos2d-x2.1 + cocosbuilder3.0 的自动生成C++类的修改
- cocos2d-x2.1 + cocosbuilder3.0 的自动生成C++类的修改
- CocosBuilder3与Cocos2d-x遇到的一些问题
- cocos2d-x GUI控件的使用(cocos2d-x2.1)
- 关于cocos2d-x进度条的实现和异步加载资源
- (coco2d-x初学)xcode5.0安装 cocos2d-x2.2.0
- Quick-Cocos2d-x 3.3 Final的资源与脚本加密
- Cocosbuilder3.x使用
- 关于cocos2d-x 资源释放问题
- 关于Cocos2d-x资源拷贝问题
- cocos2d-x的目录结构
- 关于Cocos2d-x2.2.6中SimpleAudioEngine的问题
- 一元二次方程ax*x+bx+c=0(a≠0) 计算X1、X2的值
- 【cocos2d-x IOS游戏开发-城市跑酷8】实现街区房子的摆放
- cocos2d-x的版本更换和cocos2d-x2.1.4的安装
- 怎样做好微博营销
- Android Launcher--简易Launcher开发
- Error和Exception的区别
- 程序员技术面试的福音:包你通过技术面试。
- cocos2dx3.0 自动绑定自定义的C++到lua
- 关于Cocos2d-x2.1.x与CocosBuilder3.0a 的自动资源目录摆放
- Java中BigDecimal的8种舍入模式
- inflate() 和 findViewById
- photoshop--抽出滤镜
- 获取存储过程内容
- 561456
- 阴天不下雨
- 复盘:红米成功背后,雷军的五个艰难决定
- MMA7260三轴加速度计