原创作品,转载请标明:http://blog.csdn.net/jackystudio/article/details/12747385
精灵类CCSprite可以说是游戏的主角了,也是我们平时最常用到的类。
1.概况
CCSprite本质上就是一个二维图片,是静态的。游戏中的动画只不过是让一张张静态图片快速更换达到的动态效果。CCSprite继承于CCNodeRGBA,并实现了CCTextureProtocol的接口。因此CCNodeRGBA所具有的RGB和透明值这些属性和接口CCSprite都有,而CCTextureProtocol是一个抽象类,定义了和纹理相关的两个标准接口:
- //返回当前使用的纹理
- virtualCCTexture2D*getTexture(void)=0;
- //设置一个新的纹理,它会被retain
- virtualvoidsetTexture(CCTexture2D*texture)=0;
2.常用接口
2.1.初始化
- //初始化函数
- virtualboolinit(void);
- //用CCTexture2D纹理来初始化,精灵大小即是纹理大小
- virtualboolinitWithTexture(CCTexture2D*pTexture);
- ///用CCTexture2D纹理和大小来初始化
- virtualboolinitWithTexture(CCTexture2D*pTexture,constCCRect&rect);
- //用CCTexture2D纹理,大小,旋转来初始化
- virtualboolinitWithTexture(CCTexture2D*pTexture,constCCRect&rect,boolrotated);
- //用CCSpriteFrame精灵帧来初始化
- virtualboolinitWithSpriteFrame(CCSpriteFrame*pSpriteFrame);
- //用CCSpriteFrame精灵帧名来初始化
- virtualboolinitWithSpriteFrameName(constchar*pszSpriteFrameName);
- //用外部文件初始化,外部文件会先被创建为纹理,再用纹理初始化精灵
- virtualboolinitWithFile(constchar*pszFilename);
- //用外部文件和大小来初始化
- virtualboolinitWithFile(constchar*pszFilename,constCCRect&rect);
2.2.继承自CCTextureProtocol
- //设置/获取纹理
- virtualvoidsetTexture(CCTexture2D*texture);
- virtualCCTexture2D*getTexture(void);
- //设置/获取颜色描绘时混合方案
- voidsetBlendFunc(ccBlendFuncblendFunc);
- ccBlendFuncgetBlendFunc(void);
2.3.继承自CCNode
参见CCNode。
- virtualvoidsetScaleX(floatfScaleX);
- virtualvoidsetScaleY(floatfScaleY);
- virtualvoidsetPosition(constCCPoint&pos);
- virtualvoidsetRotation(floatfRotation);
- virtualvoidsetRotationX(floatfRotationX);
- virtualvoidsetRotationY(floatfRotationY);
- virtualvoidsetSkewX(floatsx);
- virtualvoidsetSkewY(floatsy);
- virtualvoidremoveChild(CCNode*pChild,boolbCleanup);
- virtualvoidremoveAllChildrenWithCleanup(boolbCleanup);
- virtualvoidreorderChild(CCNode*pChild,intzOrder);
- virtualvoidaddChild(CCNode*pChild);
- virtualvoidaddChild(CCNode*pChild,intzOrder);
- virtualvoidaddChild(CCNode*pChild,intzOrder,inttag);
- virtualvoidsortAllChildren();
- virtualvoidsetScale(floatfScale);
- virtualvoidsetVertexZ(floatfVertexZ);
- virtualvoidsetAnchorPoint(constCCPoint&anchor);//默认(0.5,0.5)
- virtualvoidignoreAnchorPointForPosition(boolvalue);
- virtualvoidsetVisible(boolbVisible);
- virtualvoiddraw(void);
2.4.继承自CCNodeRGBA
- //设置颜色
- virtualvoidsetColor(constccColor3B&color3);
- //传递颜色
- virtualvoidupdateDisplayedColor(constccColor3B&parentColor);
- //设置透明度
- virtualvoidsetOpacity(GLubyteopacity);
- //设置/返回透明度是否跟随颜色值变化而变化
- virtualvoidsetOpacityModifyRGB(boolmodify);
- virtualboolisOpacityModifyRGB(void);
- //传递透明度
- virtualvoidupdateDisplayedOpacity(GLubyteparentOpacity);
2.5.批节点
- //更新4属性:x,y,rotation,scale
- virtualvoidupdateTransform(void);
- //如果精灵是由批节点CCSpriteBatchNode渲染的,则返回批节点
- virtualCCSpriteBatchNode*getBatchNode(void);
- //设置批节点,不推荐使用
- virtualvoidsetBatchNode(CCSpriteBatchNode*pobSpriteBatchNode);
2.6.纹理
- //设置纹理区域
- virtualvoidsetTextureRect(constCCRect&rect);
- virtualvoidsetTextureRect(constCCRect&rect,boolrotated,constCCSize&untrimmedSize);
- virtualvoidsetVertexRect(constCCRect&rect);
2.7.精灵帧和动画
- //设置新的精灵帧
- virtualvoidsetDisplayFrame(CCSpriteFrame*pNewFrame);
- //返回精灵帧是否在使用
- virtualboolisFrameDisplayed(CCSpriteFrame*pFrame);
- //返回当期使用精灵帧
- virtualCCSpriteFrame*displayFrame(void);
- //设置动画和显示索引
- virtualvoidsetDisplayFrameWithAnimationName(constchar*animationName,intframeIndex);
2.8.Setter和Getter方法
设置/获取CCSprite属性。
- //设置获取是否更新
- virtualboolisDirty(void);
- virtualvoidsetDirty(boolbDirty);
- //返回坐标、顶点、颜色信息
- ccV3F_C4B_T2F_QuadgetQuad(void);
- //返回纹理旋转
- boolisTextureRectRotated(void);
- //返回/设置地图集索引
- unsignedintgetAtlasIndex(void);
- voidsetAtlasIndex(unsignedintuAtlasIndex);
- //返回精灵区域,单位为点
- constCCRect&getTextureRect(void);
- //如果采用批渲染,返回/设置纹理地图集
- CCTextureAtlas*getTextureAtlas(void);
- inlinevoidsetTextureAtlas(CCTextureAtlas*pobTextureAtlas);
- //获取偏移
- constCCPoint&getOffsetPosition(void);
- //设置返回翻转
- boolisFlipX(void);
- voidsetFlipX(boolbFlipX);
- boolisFlipY(void);
- voidsetFlipY(boolbFlipY);