cocos2dx进阶学习之CCSprite
继承关系
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的更多相关文章
- cocos2dx进阶学习之场景切换
背景 在学习马里奥时,我们学习到从菜单场景到游戏场景的切换,代码如下 void CMMenuScene::OnStartCallBack( CCObject *pSender ) { CCDirect ...
- cocos2dx进阶学习之CCNode
继承关系 CCNode -> CCObject CCNode在cocos2dx中抽象舞台对象,需要渲染的对象都是从CCNode派生,包括CCScene,CCLayer,CCSprite等等 C ...
- cocos2dx进阶学习之CCScene
继承关系 CCScene -> CCNode -> CCObject CCScene抽象了一个场景的概念,类似舞台的一幕 函数 static CCScene *create(void); ...
- cocos2dx进阶学习之屏幕适配
背景 在学习cocos2dx时,我们在main函数中发现一句代码, #include "main.h" #include "AppDelegate.h" #in ...
- cocos2dx进阶学习之CCEGLView
继承关系 CCEGLView-> CCEGLViewProtocol CCEGLView是窗口,在不同平台上有不同的实现,而CCEGLViewProtocol是CCEGLView定义的接口,所以 ...
- cocos2dx进阶学习之CCAction
CCAction在cocos2dx中,抽象了节点的动作.它由CCObject派生,因此它不是渲染节点. 它经常的用法是,创建一个action,然后让某个CCNode对象(一般是精灵),去执行它. 在马 ...
- cocos2dx进阶学习之CCSpriteBatchNode
继承关系 CCSpriteBatchNode -> CCNode, CCTextureProtocol 成员变量 inline CCTextureAtlas* getTextureAtlas(v ...
- cocos2dx进阶学习之瓦片地图编辑器
之前学习了瓦片地图类,现在我们来学习下瓦片地图制作工具 这个是开源的工具,可以从网上下载,下面我们演示下怎么做地图 步骤1 将需要用到的图片放到一个目录下,比如我机器上就是d:\tiled,这些图片是 ...
- cocos2dx进阶学习之CCTMXLayer
继承关系 CCTMXLayer -> CCSpriteBatchNode CCTMXLayer是在瓦片地图中,抽象一个层的类,它继承自CCSpriteBatchNode,也就是说它抽象了一批相同 ...
随机推荐
- 高性能JSON库---FastJson(阿里巴巴)
1.FastJSON简单介绍 Fastjson是一个Java语言编写的高性能功能完好的JSON库. 它採用一种"假定有序高速匹配"的算法,把JSON Parse的性能提升到极致,是 ...
- SMACSS:一个关于CSS的最佳实践-2.Base Rules
回顾 在上一篇SMACSS:一个关于CSS的最佳实践-Overview中,讲到SMACSS将CSS Rules分为5个Categories: Base Layout Module State Them ...
- ListView中响应item的点击事件并且刷新界面
---恢复内容开始--- 最近在在实现listview功能中遇到了这个问题: 点击事件写在了adapter的item中,不知道如何在listview的点击事件中更新数据的显示: 总结:1.要使用not ...
- Node.js、Ionic、Cordova、AngualrJS安装
1.安装node.js: 从node.js官网下载node.js安装包,node.js下载地址:https://nodejs.org/en/download/,选择对应系统的安装下载后进行安装.(注: ...
- JavaSE复习日记 : 条件判断语句
/* 条件控制语句:if(){}else{} 语法: 第一种结构:有不执行的情况 if(boolean表达式){ //第一位真,就执行里面的语句,为假就不执行 java语句; } 第二种结构: if( ...
- [Jobdu] 题目1511:从尾到头打印链表——单链表的倒置输出
// ListNode typedef struct LNode { int key; struct LNode *next; }LNode; 分析:这是一道很有意思的面试题,此题以及此题的变体经 ...
- python质量控制
一种编写高质量软件的方式是给代码中每个函数写测试,在开发过程中经常性的进行测试. doctest模块可以在docstring中嵌套测试代码.例如: def average(values ...
- 【转】android windowSoftInputMode
android:windowSoftInputMode activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性. 这个属性能影响两件事情: [一] ...
- 帝国cms栏目死变量
这里为帝国学习者们放出帝国学习者们会用到的栏目死变量,不需要灵动或者万能标签能调用,在任何位置都能使用 栏目路径:<?=$public_r[newsurl].$class_r[1]['class ...
- 电感耦合非接触IC卡系统的EMI问题
射频识别(RFID)技术近年来发展迅速,并获得了广泛应用.但作为一种无线射频技术,其电磁兼容(EMC)性能也越来越受到人们的关注.RFID涉及的频率范围甚广,包括低于135kHz.13.56MHz.4 ...