【玩转cocos2d-x之八】精灵类CCSprite

原创作品,转载请标明:http://blog.csdn.net/jackystudio/article/details/12747385


精灵类CCSprite可以说是游戏的主角了,也是我们平时最常用到的类。


1.概况


CCSprite本质上就是一个二维图片,是静态的。游戏中的动画只不过是让一张张静态图片快速更换达到的动态效果。CCSprite继承于CCNodeRGBA,并实现了CCTextureProtocol的接口。因此CCNodeRGBA所具有的RGB和透明值这些属性和接口CCSprite都有,而CCTextureProtocol是一个抽象类,定义了和纹理相关的两个标准接口:

  1. //返回当前使用的纹理
  2. virtualCCTexture2D*getTexture(void)=0;
  3. //设置一个新的纹理,它会被retain
  4. virtualvoidsetTexture(CCTexture2D*texture)=0;


2.常用接口

2.1.初始化

  1. //初始化函数
  2. virtualboolinit(void);
  3. //用CCTexture2D纹理来初始化,精灵大小即是纹理大小
  4. virtualboolinitWithTexture(CCTexture2D*pTexture);
  5. ///用CCTexture2D纹理和大小来初始化
  6. virtualboolinitWithTexture(CCTexture2D*pTexture,constCCRect&rect);
  7. //用CCTexture2D纹理,大小,旋转来初始化
  8. virtualboolinitWithTexture(CCTexture2D*pTexture,constCCRect&rect,boolrotated);
  9. //用CCSpriteFrame精灵帧来初始化
  10. virtualboolinitWithSpriteFrame(CCSpriteFrame*pSpriteFrame);
  11. //用CCSpriteFrame精灵帧名来初始化
  12. virtualboolinitWithSpriteFrameName(constchar*pszSpriteFrameName);
  13. //用外部文件初始化,外部文件会先被创建为纹理,再用纹理初始化精灵
  14. virtualboolinitWithFile(constchar*pszFilename);
  15. //用外部文件和大小来初始化
  16. virtualboolinitWithFile(constchar*pszFilename,constCCRect&rect);

2.2.继承自CCTextureProtocol

  1. //设置/获取纹理
  2. virtualvoidsetTexture(CCTexture2D*texture);
  3. virtualCCTexture2D*getTexture(void);
  4. //设置/获取颜色描绘时混合方案
  5. voidsetBlendFunc(ccBlendFuncblendFunc);
  6. ccBlendFuncgetBlendFunc(void);

2.3.继承自CCNode

参见CCNode。

  1. virtualvoidsetScaleX(floatfScaleX);
  2. virtualvoidsetScaleY(floatfScaleY);
  3. virtualvoidsetPosition(constCCPoint&pos);
  4. virtualvoidsetRotation(floatfRotation);
  5. virtualvoidsetRotationX(floatfRotationX);
  6. virtualvoidsetRotationY(floatfRotationY);
  7. virtualvoidsetSkewX(floatsx);
  8. virtualvoidsetSkewY(floatsy);
  9. virtualvoidremoveChild(CCNode*pChild,boolbCleanup);
  10. virtualvoidremoveAllChildrenWithCleanup(boolbCleanup);
  11. virtualvoidreorderChild(CCNode*pChild,intzOrder);
  12. virtualvoidaddChild(CCNode*pChild);
  13. virtualvoidaddChild(CCNode*pChild,intzOrder);
  14. virtualvoidaddChild(CCNode*pChild,intzOrder,inttag);
  15. virtualvoidsortAllChildren();
  16. virtualvoidsetScale(floatfScale);
  17. virtualvoidsetVertexZ(floatfVertexZ);
  18. virtualvoidsetAnchorPoint(constCCPoint&anchor);//默认(0.5,0.5)
  19. virtualvoidignoreAnchorPointForPosition(boolvalue);
  20. virtualvoidsetVisible(boolbVisible);
  21. virtualvoiddraw(void);

2.4.继承自CCNodeRGBA

  1. //设置颜色
  2. virtualvoidsetColor(constccColor3B&color3);
  3. //传递颜色
  4. virtualvoidupdateDisplayedColor(constccColor3B&parentColor);
  5. //设置透明度
  6. virtualvoidsetOpacity(GLubyteopacity);
  7. //设置/返回透明度是否跟随颜色值变化而变化
  8. virtualvoidsetOpacityModifyRGB(boolmodify);
  9. virtualboolisOpacityModifyRGB(void);
  10. //传递透明度
  11. virtualvoidupdateDisplayedOpacity(GLubyteparentOpacity);

2.5.批节点

  1. //更新4属性:x,y,rotation,scale
  2. virtualvoidupdateTransform(void);
  3. //如果精灵是由批节点CCSpriteBatchNode渲染的,则返回批节点
  4. virtualCCSpriteBatchNode*getBatchNode(void);
  5. //设置批节点,不推荐使用
  6. virtualvoidsetBatchNode(CCSpriteBatchNode*pobSpriteBatchNode);

2.6.纹理

  1. //设置纹理区域
  2. virtualvoidsetTextureRect(constCCRect&rect);
  3. virtualvoidsetTextureRect(constCCRect&rect,boolrotated,constCCSize&untrimmedSize);
  4. virtualvoidsetVertexRect(constCCRect&rect);

2.7.精灵帧和动画

  1. //设置新的精灵帧
  2. virtualvoidsetDisplayFrame(CCSpriteFrame*pNewFrame);
  3. //返回精灵帧是否在使用
  4. virtualboolisFrameDisplayed(CCSpriteFrame*pFrame);
  5. //返回当期使用精灵帧
  6. virtualCCSpriteFrame*displayFrame(void);
  7. //设置动画和显示索引
  8. virtualvoidsetDisplayFrameWithAnimationName(constchar*animationName,intframeIndex);

2.8.Setter和Getter方法

设置/获取CCSprite属性。

  1. //设置获取是否更新
  2. virtualboolisDirty(void);
  3. virtualvoidsetDirty(boolbDirty);
  4. //返回坐标、顶点、颜色信息
  5. ccV3F_C4B_T2F_QuadgetQuad(void);
  6. //返回纹理旋转
  7. boolisTextureRectRotated(void);
  8. //返回/设置地图集索引
  9. unsignedintgetAtlasIndex(void);
  10. voidsetAtlasIndex(unsignedintuAtlasIndex);
  11. //返回精灵区域,单位为点
  12. constCCRect&getTextureRect(void);
  13. //如果采用批渲染,返回/设置纹理地图集
  14. CCTextureAtlas*getTextureAtlas(void);
  15. inlinevoidsetTextureAtlas(CCTextureAtlas*pobTextureAtlas);
  16. //获取偏移
  17. constCCPoint&getOffsetPosition(void);
  18. //设置返回翻转
  19. boolisFlipX(void);
  20. voidsetFlipX(boolbFlipX);
  21. boolisFlipY(void);
  22. voidsetFlipY(boolbFlipY);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值