贴一些关于精灵帧,精灵表的加载方式。
图片加载
//方式一,直接用resouces中的图片加载 // auto a = Sprite::create("123.png"); // a -> setPosition(visibleSize.width/2,visibleSize.height/2); // addChild(a); //方式二,精灵区域矩形图片加载,某个图片中的矩形区域 // auto b = Sprite::create("123.png",Rect(101,102,201,202));(101,102)为左上角坐标,(201,202)为图片的宽和高 //*方式三,纹理缓存,加载入内存,从内存中读(使用精灵图集,一种优化方式,有利有弊)。 // Texture2D* cache = Director::getInstance()->getTextureCache()->addImage("123.png"); // auto c = Sprite::create(); // c -> setTexture(cache); // c -> setTextureRect(Rect(101,102,103,104)); //(101,102)为左上角坐标(103,104)为图片的宽和高,plist文件可以有相关信息。 // c -> setPosition(144,144); // addChild(c); //方式四,精灵帧缓存,SpriteFrameCache为单例的plist中为图片的坐标信息,后面的程序可以继续使用SpriteFrameCache::getInstance()->addSpriteFramesWithFile继续加载其它文件进内存若名字一样,则进行覆盖。 // SpriteFrameCache::getInstance()->addSpriteFramesWithFile("123.plist"); // auto d = Sprite::createWithSpriteFrameName("chuShou0003.png");//未命名-10001.png为大图中某小图的名字。☆不能为中文名 // d ->setPosition(visibleSize.width/3,visibleSize.height/3); // addChild(d);
删除图片的一些操作
//指定具体精灵帧名移除 //void removeSpriteFrameByName(const std::string &name); //指定清空精灵缓存。 //void removeSpriteFrames() //指定具体坐标文件移除精灵帧 //void removeSpriteFramesFromFile(const std::string &plist) //移除没有使用的精灵帧 //void removeUnusedSpriteFrames()
(持续修改中······)