cocos2d-x Sprite精灵对象创建方法

前端之家收集整理的这篇文章主要介绍了cocos2d-x Sprite精灵对象创建方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Sprite 精灵类

@H_502_8@ static Sprite * create()
@H_502_8@ static Sprite * create(const std::string &filename)
@H_502_8@ static Sprite * create(const::string &filename,const Rect &rect)
@H_502_8@
@H_502_8@ 2. 创建精灵类对象 例:
@H_502_8@
@H_502_8@ 1⃣️使用纹理对象创建Sprite对象
@H_502_8@
@H_502_8@ 背景 @H_502_8@
@H_502_8@ auto bk=Sprite::create(“background.png”); @H_502_8@ background->setAnchorPoint(Vec2::ZERO); @H_502_8@ this->addChild(bk,0); @H_502_8@
2⃣️使用纹理图集
需要的各种图片 在一张图上集合 使用时 裁切下来
auto mountain=Sprite::create(“Picture.png”,Rect(2,15,300,300));
mountain->setPosition(Vec2(100,200));
this->addChild(mountain,0);
可以达到性能优化 减少文件读取次数 加速渲染 减少内存消耗
3⃣️使用精灵帧缓存
可以使用Zwoptex 和 TexturePacker工具设计生成纹理图集 ,以及纹理图集的坐标文件(.plist),plist 是属性列表文件,它是一种XML 文件
SpriteFrameCache * fc=SpriteFrameCache::getInstance();// 创建精灵帧缓存对象
fc->addSpriteFramesWithFile(“Picture.plist”);//对象调用addSpriteFramesWithFile()方法给缓存添加.plist
既然上面创建了精灵帧缓存对象,那么怎么用这个缓存来读取里边的SpriteFrame(精灵帧对象)呢 两种方法如下
//创建精灵帧对象获取
SpriteFrame * hero =fc->getSpriteFrameByName(tree.png);
//通过创建Sprite对象获取 不过调用方法是 createWithSpriteFrameName() 不是create()
auto tree=Sprite::createWithSpriteFrameName(“hero.png”);
@H_502_8@ [创建精灵帧缓存和添加.plist可以合并为一句]
@H_502_8@ SpriteFrameCache::getInstance()->addSpriteFramesWithFile(“Picture.plist”);
请注意:精灵帧缓存和精灵帧是两个类 , 创建对象时要分清 。其实精灵帧缓存fc里边缓存的就是精灵帧 如( tree,hero,…….) 这些图片
而精灵帧不再使用后需要移除,函数如下
(1)void removeSpriteFrameByName(const std::string &name); // 从精灵帧缓存中删除一个精灵帧.
(2) void removeSpriteFramesFromFile(const std::string &plist) ;// 从一个.plist文件移除多重精灵帧。 存储在这个文件的精灵帧将被删除。 当某个特定的纹理需要被删除时候调用这个方法很方便。
(3) void removeUnusedSpriteFrames();// 移除没用的精灵帧。 保留数为1的精灵帧将被删除。 在开始一个新的场景之后调用这个方法很方便。
(3) void removeSpriteFrames();// 清除载入精灵帧的字典(缓存)。 如果接收到“Memory Warning”,那么需要调用这个方法。 就眼前来说,它将释放一些资源来阻止你的应用崩溃掉。 从中期的角度,它将分配更多的资源。 从长远来说,它将变成相同的。

猜你在找的Cocos2d-x相关文章