建大仁科公司网站,关键词排名推广公司,商城网站建设缺点,微舍 微网站 怎么做from http://cn.cocos2d-x.org/tutorial/show?id1277本章只分享一下异步加载的逻辑#xff0c;如有不对的地方还望大家及时指出。目前我代码中需要异步加载的资源一共有四类#xff1a;1.png#xff0c;单个png的情况比较少2.plist和png一起的打包资源3.plist和pvr.ccz一起…from http://cn.cocos2d-x.org/tutorial/show?id1277本章只分享一下异步加载的逻辑如有不对的地方还望大家及时指出。目前我代码中需要异步加载的资源一共有四类1.png单个png的情况比较少2.plist和png一起的打包资源3.plist和pvr.ccz一起的打包资源4.CocosStudio导出的.ExportJson后缀的动画文件再重复一遍加载机制所有的资源是按序加载的不可同时加载多个文件。执行异步加载的处理肯定是写在void update(float f)中做到按帧加载。1.png的异步加载Director::getInstance()-getTextureCache()-addImageAsync(reloadImages[curReloadImgNum], CC_CALLBACK_1(LoadingScene::imageAsyncCallback, this));2.plist和png一起的打包资源废话不多直接上方法没有加载plist的api我们使用如1的方法加载png然后在回调函数中加载plist。Director::getInstance()-getTextureCache()-addImageAsync(reloadPlists[curReloadPlistNum]png, CC_CALLBACK_1(LoadingScene::plistImageAsyncCallback, this)); 注意回调函数的参数这是plist异步加载的关键形参是png纹理。void LoadingScene::plistImageAsyncCallback(cocos2d::Texture2D* texture)
{ SpriteFrameCache::getInstance()-addSpriteFramesWithFile(reloadPlists[curReloadPlistNum].append(plist), texture); curReloadPlistNum; loading true;
} 3.plist和pvr.ccz一起的打包资源类似2的方法。 Director::getInstance()-getTextureCache()-addImageAsync(reloadPvrPlists[curReloadPvrPlistNum] pvr.ccz, CC_CALLBACK_1(LoadingScene::pvrPlistImageAsyncCallback, this));
void LoadingScene::pvrPlistImageAsyncCallback(cocos2d::Texture2D* texture)
{ SpriteFrameCache::getInstance()-addSpriteFramesWithFile(reloadPvrPlists[curReloadPvrPlistNum].append(plist), texture); curReloadPvrPlistNum; loading true;
}4.Cocos Studio导出的.ExportJson后缀的动画文件ArmatureDataManager::getInstance()-addArmatureFileInfoAsync(reloadExportJsons[curReloadExportJsonNum], this, schedule_selector(LoadingScene::jsonAsyncCallback));
void LoadingScene::jsonAsyncCallback(float f)
{ curReloadExportJsonNum; loading true;
}四种加载方法已经介绍完了只要在update中做好按序加载就可以了。如何优化内存加载尽量少的资源我的这个场景叫LoadingScene这是一个中转场景既是切换两个场景之间的过渡场景用来释放上一个场景的资源和预加载下一个场景资源。在这个场景中我们可以释放掉cache中的所有文件然后根据下个场景的内容来加载所需的文件。 这就需要我们做好配置工作比如保卫萝卜下一关只有两种塔我们只加载这两种塔的动画即可而不需要所有塔全部加载。还有一个小技巧关于异步加载exportJson的文件。这个异步加载既可以加载动画缓存还可以把跟它一起的plist和png一起加载到缓存中所有如果想加载plist也可以把它们到成静止的动画然后使用exportJson加载即可使用里面的精灵。