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,也就是说它抽象了一批相同 ...
随机推荐
- windows下搭建apache+php+mysql
在windows下,apache和mysql都有自动化安装的程序,本篇则侧重从apache和php版本选择,php线程安全,apache和mysql安装启动服务,工作环境配置这几个方面来阐述windo ...
- 漫谈程序猿系列:她发现了一个Bug……
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZm9ydW9r/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/d ...
- Nice way for strip_tags a like
I found this code works great as the function strip_tags in php to replace html tags from string and ...
- 更改mysql 数据库名称
//创建新数据库 CREATE DATABASE hbwebTemporary; //移植每个表 RENAME TABLE hbweb.aircraft_info TO hbwebTemporary. ...
- 零行代码为App添加异常加载占位图
前文提要 近期准备重构项目,需要重写一些通用模块,正巧需要设置App异常加载占位图的问题,心血来潮设想是否可以零行代码解决此问题,特在此分享实现思路. 思路分享 对于App占位图,通常需要考虑的控件有 ...
- les nationalités et les pays
masculin féminin pays français française la France chinois chinoise la Chine suisse suisse ...
- Android应用开发提高篇(1)-----获取本地IP
链接地址:http://www.cnblogs.com/lknlfy/archive/2012/02/21/2361802.html 一.概述 习惯了Linux下的网络编程,在还没用智能机之前就一直想 ...
- PHP自练项目之数字分页效果
学习要点:1.LIMIT 用法2.各种参数3.超链接调用 第一:先在文件中设置数字分页模块:我的文件是(blog.php) //分页模块 $_page = $_GET['page']; $_pages ...
- cocos2dx vs2010打开打印窗口
vs2010下调试时,有时需要有打印窗口. 在main.cpp函数的开始处,加入一下 AllocConsole(); freopen("CONIN$", "r" ...
- Android studio如何使用SVN进行版本控制?
通过这两天对Android Studio的研究,终于搞通了Android Studio的基本操作及与SVN的相关关联操作(这样才能在公司的开发工作中使用):Google年底将会停止ADT插件的更新和支 ...