其他分享
首页 > 其他分享> > 菜鸟也能学cocos2dx3.0 浅析刀塔传奇(下)

菜鸟也能学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