菜鸟也能学cocos2dx3.0 浅析刀塔传奇(下)
作者:互联网
首先我们讲点话外的东西,异步载入:众所周知。loading里面一般都是载入数据的,那么是怎么载入的呢?
Director::getInstance()->getTextureCache()->addImageAsync(const std::string &path, const std::function<void(Texture2D*)>& callback)//參数1。文件路径,參数2,回调函数(一般都是进度条)
那么假设我们要载入帧动画呢?
auto frameache=SpriteFrameCache::getInstance();
frameache->addSpriteFramesWithFile(" xxxxxx ");//參数。plist文件路径
但是这样并非异步载入。那么应该怎么办?事实上还是用上面这两个:
Director::getInstance()->getTextureCache()->addImageAsync(const std::string &path, const std::function<void(Texture2D*)>& callback);//我们首先异步载入了纹理
auto My_Texture2D=Director::getInstance()->getTextureCache()->addImage(" ");
//假设我们成功异步载入图片之后,我们能够从纹理缓存里面,即std::unordered_map<std::string,Texture2D*> _textures 返回相应key的纹理。而key在引擎源码中则是文件的完整路径,由于在texture2d里面会做一步std::string fullpath =FileUtils::getInstance()->fullPathForFilename(path);而我们外部用的话,仅仅须要平时resources的路径就可以。
标签:std,异步,const,getInstance,菜鸟,载入,能学,Director,浅析 来源: https://www.cnblogs.com/mqxnongmin/p/10972819.html