继承关系

CCSprite -> CCNodeRGBA       ->   CCNode, CCRGBAProtocol

CCTextureProtocol

从继承关系可以看出,CCSprite也是一个CCNode的子类,在cocos2dx中,CCSprite抽象了舞台中的角色对象,类似舞台中的舞者,或者舞台中的某一个道具。

成员函数

static CCSprite* create();

static CCSprite* create(const char *pszFileName);

static CCSprite* create(const char *pszFileName, const CCRect& rect);

static CCSprite* createWithTexture(CCTexture2D *pTexture);

static CCSprite* createWithTexture(CCTexture2D *pTexture, const CCRect& rect);

static CCSprite* createWithSpriteFrame(CCSpriteFrame *pSpriteFrame);

static CCSprite* createWithSpriteFrameName(const char *pszSpriteFrameName);

创建函数,精灵一般需要一个纹理图片作为其参数,也有些函数有矩形,表示只需要用一部分纹理作为精灵

virtual void setPosition(const CCPoint& pos);

virtual void setRotation(float fRotation);

virtual void setRotationX(float fRotationX);

virtual void setRotationY(float fRotationY);

virtual void setSkewX(float sx);

virtual void setSkewY(float sy);

virtual void removeChild(CCNode* pChild, bool bCleanup);

virtual void removeAllChildrenWithCleanup(bool bCleanup);

virtual void reorderChild(CCNode *pChild, int zOrder);

virtual void addChild(CCNode *pChild);

virtual void addChild(CCNode *pChild, int zOrder);

virtual void addChild(CCNode *pChild, int zOrder, int tag);

virtual void sortAllChildren();

virtual void setScale(float fScale);

virtual void setVertexZ(float fVertexZ);

virtual void setAnchorPoint(const CCPoint& anchor);

virtual void ignoreAnchorPointForPosition(bool value);

virtual void setVisible(bool bVisible);

virtual void draw(void);

virtual void updateTransform(void);

以上接口时重载CCNode,这里不再赘述

virtual void setColor(const ccColor3B& color3);

virtual void updateDisplayedColor(const ccColor3B& parentColor);

virtual void setOpacity(GLubyte opacity);

virtual void setOpacityModifyRGB(bool modify);

virtual bool isOpacityModifyRGB(void);

virtual void updateDisplayedOpacity(GLubyte parentOpacity);

以上接口来自CCNodeRGBA,这里不再赘述

virtual CCSpriteBatchNode* getBatchNode(void);

virtual void setBatchNode(CCSpriteBatchNode *pobSpriteBatchNode);

设置CCSpriteBatchNode,但是建议用get接口,不建议用set接口

virtual void setTextureRect(const CCRect& rect);

virtual void setTextureRect(const CCRect& rect, bool rotated, const CCSize& untrimmedSize);

inline const CCRect& getTextureRect(void) { return m_obRect; }

设置纹理的矩形,来改变精灵

virtual void setDisplayFrame(CCSpriteFrame *pNewFrame);

virtual bool isFrameDisplayed(CCSpriteFrame *pFrame);

virtual CCSpriteFrame* displayFrame(void);

virtual void setDisplayFrameWithAnimationName(const char *animationName, int frameIndex);

设置显示帧,通过这些函数可以实现动画

inline virtual bool isDirty(void) { return m_bDirty; }

inline virtual void setDirty(bool bDirty) { m_bDirty = bDirty; }

dirty表明精灵需要更新

inline ccV3F_C4B_T2F_Quad getQuad(void) { return m_sQuad; }

获取坐标、顶点、颜色信息

inline bool isTextureRectRotated(void) { return m_bRectRotated; }

返回纹理图片是否旋转了

inline unsigned int getAtlasIndex(void) { return m_uAtlasIndex; }

inline void setAtlasIndex(unsigned int uAtlasIndex) { m_uAtlasIndex = uAtlasIndex; }

如果采用批渲染,返回/设置纹理地图集

inline CCTextureAtlas* getTextureAtlas(void) { return m_pobTextureAtlas; }

inline void setTextureAtlas(CCTextureAtlas *pobTextureAtlas) { m_pobTextureAtlas = pobTextureAtlas; }

获取/设置地图纹理

inline const CCPoint& getOffsetPosition(void) { return m_obOffsetPosition; }

获取位置

bool isFlipX(void);

void setFlipX(bool bFlipX);

bool isFlipY(void);

void setFlipY(bool bFlipY);

设置翻转

cocos2dx进阶学习之CCSprite的更多相关文章

  1. cocos2dx进阶学习之场景切换

    背景 在学习马里奥时,我们学习到从菜单场景到游戏场景的切换,代码如下 void CMMenuScene::OnStartCallBack( CCObject *pSender ) { CCDirect ...

  2. cocos2dx进阶学习之CCNode

    继承关系 CCNode  -> CCObject CCNode在cocos2dx中抽象舞台对象,需要渲染的对象都是从CCNode派生,包括CCScene,CCLayer,CCSprite等等 C ...

  3. cocos2dx进阶学习之CCScene

    继承关系 CCScene -> CCNode -> CCObject CCScene抽象了一个场景的概念,类似舞台的一幕 函数 static CCScene *create(void); ...

  4. cocos2dx进阶学习之屏幕适配

    背景 在学习cocos2dx时,我们在main函数中发现一句代码, #include "main.h" #include "AppDelegate.h" #in ...

  5. cocos2dx进阶学习之CCEGLView

    继承关系 CCEGLView-> CCEGLViewProtocol CCEGLView是窗口,在不同平台上有不同的实现,而CCEGLViewProtocol是CCEGLView定义的接口,所以 ...

  6. cocos2dx进阶学习之CCAction

    CCAction在cocos2dx中,抽象了节点的动作.它由CCObject派生,因此它不是渲染节点. 它经常的用法是,创建一个action,然后让某个CCNode对象(一般是精灵),去执行它. 在马 ...

  7. cocos2dx进阶学习之CCSpriteBatchNode

    继承关系 CCSpriteBatchNode -> CCNode, CCTextureProtocol 成员变量 inline CCTextureAtlas* getTextureAtlas(v ...

  8. cocos2dx进阶学习之瓦片地图编辑器

    之前学习了瓦片地图类,现在我们来学习下瓦片地图制作工具 这个是开源的工具,可以从网上下载,下面我们演示下怎么做地图 步骤1 将需要用到的图片放到一个目录下,比如我机器上就是d:\tiled,这些图片是 ...

  9. cocos2dx进阶学习之CCTMXLayer

    继承关系 CCTMXLayer -> CCSpriteBatchNode CCTMXLayer是在瓦片地图中,抽象一个层的类,它继承自CCSpriteBatchNode,也就是说它抽象了一批相同 ...

随机推荐

  1. 求最小的k个数

    和高速排序有点类似,利用高速排序的划分算法, 划分算法见http://blog.csdn.net/buyingfei8888/article/details/8997803 依据int partiti ...

  2. Mybatis上路_06-使用Java自动生成[转]

    Mybatis上路_06-使用Java自动生成 11人收藏此文章, 我要收藏发表于1个月前(2013-04-24 23:05) , 已有151次阅读 ,共0个评论 目录:[ - ] 1.编写Gener ...

  3. c/c++中宏定义##连接符 和#符的使用

    C语言中如何使用宏C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念).下面对常遇到的宏的使用问题做了简单总结.关于#和##在C语言的宏中,#的功能是将其后面的宏 ...

  4. POJ 3623 Best Cow Line, Gold(字符串处理)

    题意:给你一个字符串,让你重新排列,只能从头或者尾部取出一个放到新字符串队列的最后.按照字典序. 解决方法:比较前后两个的大小,谁小输出谁,相等,就往当中比来确定当前应该拿最前面的还是最后面的,如果再 ...

  5. MySql 日期字符串类型互转

    1.data_format 日期转字符串 select date_format(Now(), '%Y-%m-%d %H:%i'); 2.str_to_date 字符串转日期 select str_to ...

  6. HTTP协议头部与Keep-Alive模式详解

    HTTP协议头部与Keep-Alive模式详解 .什么是Keep-Alive模式? 我们知道HTTP协议采用“请求-应答”模式,当使用普通模式,即非KeepAlive模式时,每个请求/应答客户和服务器 ...

  7. HTML+CSS笔记 CSS进阶再续

    CSS的布局模型 清楚了CSS 盒模型的基本概念. 盒模型类型, 我们就可以深入探讨网页布局的基本模型了.布局模型与盒模型一样都是 CSS 最基本. 最核心的概念. 但布局模型是建立在盒模型基础之上, ...

  8. [转]深度探索C语言函数可变长参数

    转自:http://www.cnblogs.com/chinazhangjie/archive/2012/08/18/2645475.html 一.基础部分 1.1 什么是可变长参数 可变长参数:顾名 ...

  9. C单链表实现

    /* * LinkNode.c * * Created on: Jan 14, 2014 * Author: root */ #include <stdlib.h> #include &l ...

  10. include file和include virtual的区别

    1.#include file 包含文件的相对路径,#include virtual包含文件的虚拟路径. 2.在同一个虚拟目录内,<!--#include file="file.asp ...