您的位置:首页 > 移动开发 > Cocos引擎

安卓手机使用loading界面时一开始用CCTextureCache::sharedTextureCache()->addImageAsync感觉会卡

2013-07-28 14:56 555 查看
             大家好,最近忙于项目比较少发博文,现在发自己发现的问题跟大家共享一下!在我用cocos2dx做游戏时,本想用一个loading界面使一开始下一个跳转以及之后的跳转界面都不卡(这个是我的本意)。后来就根据网上大家都建议使用的异步加载图片的方法去加载图片纹理

//对话的图片纹理
CCTextureCache::sharedTextureCache()->addImageAsync("dialogue.png",this,callfuncO_selector(StartLayer::gamemainCallback));
//对话的图片纹理
CCTextureCache::sharedTextureCache()->addImageAsync("ioc.png",this,callfuncO_selector(StartLayer::gamemainCallback));
//栅栏的图片纹理
CCTextureCache::sharedTextureCache()->addImageAsync("column.png",this,callfuncO_selector(StartLayer::gamemainCallback));
//天空2的图片纹理
CCTextureCache::sharedTextureCache()->addImageAsync("sky2.png",this,callfuncO_selector(StartLayer::gamemainCallback));
//大地2的图片纹理
CCTextureCache::sharedTextureCache()->addImageAsync("grassland2.png",this,callfuncO_selector(StartLayer::gamemainCallback));
//花朵的图片纹理
CCTextureCache::sharedTextureCache()->addImageAsync("flower.png",this,callfuncO_selector(StartLayer::gamemainCallback));

结果发现在主界面时来跳转到另外一个界面时还是很卡(用android手机调试),但同时也发现一个奇怪的现象就是只是第一次跳转会卡,之后就不会了。所以我就在loading界面中加上了create的函数但不加到画面中,使他第一次加载在loading界面中,结果发现在手机上就不卡了,应该是得在create一次才能真正把纹理加载到内存里面,本人只能如此理解,如果大家有更好的理解,请留言哈
CCTexture2D *texture2d=CCTextureCache::sharedTextureCache()->textureForKey(image);
CCSprite* sprite = CCSprite::createWithTexture(texture2d);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cocos2dx图片loading