欢迎使用CSDN-markdown编辑器
来源:互联网 发布:农村淘宝申请报名网址 编辑:程序博客网 时间:2024/06/05 18:20
cococ2d-x成长记录贴2–精灵
今天看了精灵这一章,先从类的继承来说吧。
Sprite精灵类继承自Node和TextureProtocol,它的子类有PhysicsSprite物理引擎精灵类和Skin皮肤精灵类。
创建精灵的方式有很多种,下面几种是比较常用的:
static Sprite *create()//创建一个精灵对象,纹理属性等在创建后设置。
static Sprite *create(const std::string &filename).//指定图片创建精灵。
static Sprite *create(const std::string&filename,const Rect&rect).//指定图片和裁剪的矩形区域来创建精灵。
static Sprite *createWithTexture(Texture2D *texture)//指定纹理创建精灵。
static Sprite *createWithTexture(Texture2D *texture, const Rect &rect,bool rotated=false).指定纹理和裁剪的矩形区域来创建精灵,第三个参数为是否旋转纹理,默认不旋转。
精灵的优化可以使用精灵表 和缓存。
精灵表也成为纹理图集,是把许多小的精灵图片组合到一张大图里面。其优点如下:
1:减少文件读取次数
2:减少OpenGL ES绘制调用并且加速渲染。
3:减少内存消耗
4:Cocos2d-x全面支持Zwoptex和TexturePacker,所以创建和使用纹理图集是很容易的。
缓存有如下几种,精灵帧缓存是其中的一种:
1:纹理缓存,使用纹理缓存可以创建纹理对象。
2:精灵帧缓存:能够从精灵表中创建精灵帧缓存,然后再从精灵帧缓存中获得精灵对象,反复使用精灵对象时,使用精灵帧缓存可以节省内存消耗。
3:动画缓存。动画缓存主要用于精灵动画,精灵动画中的每一帧是从动画缓存中获取的。
使用精灵帧缓存的例子:
SpriteFrameCache *frameCache = SpriteFrameCache::getInstance();
frameCache->addSpriteFrameWithFile(“SpriteSheet.plist”);
auto mouitain1 = Sprite::createWithSpriteFrame(“moutain1.png”)//图片的路径为.plist坐标文件中定义的精灵帧名
mountain->setAnchorPoint(Vec::ZERO);
mountain->setPosition(Vec(-200,80));
this->addChild(mountain1,0);
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- WaitForSingleObject
- 各种不爽,杭电1166终于挣扎着AC了
- iOS开发人员必看的精品资料(100个)——下载目录
- 什么是白牌机什么是ONIE (by quqi99)
- Android Support v4、v7、v13的区别和应用场景
- 欢迎使用CSDN-markdown编辑器
- ArcGIS、Super、MapMapInfo比较
- Linux系统的学习心得
- Cobar 再体验——系统初窥
- tomcat的缓存配置状况
- Android学习笔记之广播接收器(Broadcast Receiver)
- jquery DOM操作
- 函数调用过程中,函数参数的入栈顺序
- C++中将基类的析构函数定义为虚函数