说明版本:
VS2012;
Cocosdx(cocos2d-x-2.2.6);
一、什么是精灵?
在Cocos2dx中,图片的表现形式有多种形态,如果对于纹理来说,是一种图片,只是GPU硬件经行渲染,而精灵正式图片在游戏场景中动态表示的形式,它可能是游戏中的敌人、英雄、树木、石头和武器等等。
二、精灵创建
1. 创建空精灵
<span style="white-space:pre"> </span>CCSprite* sprite = CCSprite::create(); addChild(sprite); sprite->setPosition(ccp(200,200));
2.通过文件路径创建精灵
<span style="white-space:pre"> </span>CCSprite* sprite = CCSprite::create("CloseNormal.png"); addChild(sprite); sprite->setPosition(ccp(200,200));
3.通过纹理来创建精灵
<span style="white-space:pre"> </span>CCTexture2D* texture = CCTextureCache::sharedTextureCache()->addImage("CloseNormal.png") ; CCSprite* sprite = CCSprite::createWithTexture(texture);
4.通过精灵帧来创建精灵
<span style="white-space:pre"> </span>CCTexture2D* texture = CCTextureCache::sharedTextureCache()->addImage("CloseNormal.png") ; <span style="white-space:pre"> </span>CCSpriteFrame* frame = CCSpriteFrame::createWithTexture(texture,CCRect(20,20,20)); <span style="white-space:pre"> </span>CCSprite* sprite = CCSprite::createWithSpriteFrame(frame);
三、精灵优化
CCSprite::createSpriteFrame(const CCSpriteFrame* frame);
SpriteFrame对象抽象的是图片的一部分,将很多小图集中在一个大纹理中,可以减少内存边角料,达到节约内存的目的
CCSprite::createWithTexture(const CCTexture2D* texture);
CCSprite::createWithTexture(const CCTexture2D* texture,const CCRect& rect); 通过纹理来创建精灵,往往纹理保存在纹理缓存中,好处是,多个精灵有相同纹理时,可以节约内存和提高效率