继承关系

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. strdup函数的使用方法

    函数名: strdup 功  能: 将串复制到新建的位置处 用  法: char *strdup(char *str): 这个函数在linux的man手冊里解释为: The strdup() func ...

  2. sharepoint 2013 文档库 资源管理器打开报错 在文件资源管理器中打开此位置时遇到问题,将此网站添加到受信任站点列表,然后重试。

    我们在使用sharepoint 2013的文档库或者资源库的时候,经常会需要用到使用“资源管理器”来管理文档,但是有时候,点击“使用资源管理器打开”,会提示如下错误: 在文件资源管理器中打开此位置时遇 ...

  3. Android 实现左右滑动效果ViewFlipper终结【转】

    本示例演示在Android中实现图片左右滑动效果.   关于滑动效果,在Android中用得比较多,本示例实现的滑动效果是使用ViewFlipper来实现的,当然也可以使用其它的View来实现.接下来 ...

  4. HTTP学习笔记——URL与资源

    什么是URL? 所有的东西都有一个标准化的东西,公交有线路号,飞机有航班号,个人有身份证号,你坐出租车,告诉司机师傅我要到石牌华师,他就能明白你的意思了.URL就是因特网资源的标准化名称.URL指向一 ...

  5. iOS开发笔记 基于wsdl2objc调用asp.net WebService

    1.准备 先下载待会要用到的工具 WSDL2ObjC-0.6.zip WSDL2ObjC-0.7-pre1.zip 我用的是WSDL2ObjC-0.6.zip 1.1搭建asp.net WebServ ...

  6. 【微信公众号】使用a标签打开链接显示空白

    window.location.href 改成 top.location.href

  7. win7程序关闭后弹出 程序兼容性助手 这个程序可能安装不正确 如果此程序没有正确安装,处理方式

    用WTL编写的程序,编译成release后,在win7上关闭后,弹出这个对话框 处理方法: 将这个xml文件命名成 xxx.exe.manifest,保存到指定目录下 <?xml version ...

  8. C++ 之STL priority_queue

    priority_queue 对于基本类型的使用方法相对简单.他的模板声明带有三个参数,priority_queue<Type, Container, Functional>Type 为数 ...

  9. 关于一个wpf中的定时器

    http://www.cnblogs.com/royenhome/archive/2010/01/24/1655168.html

  10. codeforces 374D. Inna and Sequence 线段树

    题目链接 给m个数, n个操作, 一个数列, 初始为空.一共有3种操作, 在数列末尾加0, 加1, 或删除位置为a[i]的数, a[i]为初始给的m个数, 如果a[i]大于数列长度, 那么什么也不发生 ...