为了观察CCSprite的功能打开CCSprite.h文件,CCSprite.h文件中通过代码描述了CCSprite的功能和实现方法
#ifndef __SPITE_NODE_CCSPRITE_H__
#define __SPITE_NODE_CCSPRITE_H__
#include "base_nodes/CCNode.h"
#include "CCProtocols.h"
#include "textures/CCTextureAtlas.h"
#include "ccTypes.h"
#include "cocoa/CCDictionary.h"
#include <string>
#ifdef EMSCRIPTEN
#include "base_nodes/CCGLBufferedNode.h"
#endif // EMSCRIPTEN
NS_CC_BEGIN
class CCSpriteBatchNode;
class CCSpriteFrame;
class CCAnimation;
class CCRect;
class CCPoint;
class CCSize;
class CCTexture2D;
struct transformValues_;
#define CCSpriteIndexNotInitialized 0xffffffff /// CCSprite invalid index on the CCSpriteBatchNode
class CC_DLL CCSprite : public CCNodeRGBA, public CCTextureProtocol
#ifdef EMSCRIPTEN
, public CCGLBufferedNode
#endif // EMSCRIPTEN
{
public:
//创建一个空的精灵
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);
//构造函数
CCSprite(void);
//析构函数
virtual ~CCSprite(void);
//初始化实例
virtual bool init(void);
//初始化纹理
virtual bool initWithTexture(CCTexture2D *pTexture);
//初始化纹理和矩形
virtual bool initWithTexture(CCTexture2D *pTexture, const CCRect& rect);
//初始化纹理、矩形和扭转
virtual bool initWithTexture(CCTexture2D *pTexture, const CCRect& rect, bool rotated);
//初始化精灵帧
virtual bool initWithSpriteFrame(CCSpriteFrame *pSpriteFrame);
//初始化精灵帧
virtual bool initWithSpriteFrameName(const char *pszSpriteFrameName);
//初始化文件
virtual bool initWithFile(const char *pszFilename);
//初始化文件和矩形
virtual bool initWithFile(const char *pszFilename, const CCRect& rect);
//设置纹理
virtual void setTexture(CCTexture2D *texture);
//得到纹理
virtual CCTexture2D* getTexture(void);
//设置精灵条
inline void setBlendFunc(ccBlendFunc blendFunc) { m_sBlendFunc = blendFunc; }
//得到精灵条
inline ccBlendFunc getBlendFunc(void) { return m_sBlendFunc; }
//设置精灵的比例
virtual void setScaleX(float fScaleX);
virtual void setScaleY(float fScaleY);
//设置精灵的坐标
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);
//从父节点中删除当前子节点 如果Cleanup为true则删除当前节点的所有动作
virtual void removeAllChildrenWithCleanup(bool bCleanup);
//重新设定精灵的zOrder
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);
//设置VertexZ(VertexZ和Zorder的功能一样,都表示渲染顺序)
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 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);
//更新变化
virtual void updateTransform(void);
//得到批量结点
virtual CCSpriteBatchNode* getBatchNode(void);
//设置批量结点
virtual void setBatchNode(CCSpriteBatchNode *pobSpriteBatchNode);
//设置纹理所在的矩形区域
virtual void setTextureRect(const CCRect& rect);
//设置纹理所在的矩形区域
virtual void setTextureRect(const CCRect& rect, bool rotated, const CCSize& untrimmedSize);
//设置顶点矩形
virtual void setVertexRect(const CCRect& rect);
//设置显示精灵帧
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; }
//返回特克斯坐标、顶点坐标和颜色
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 const CCRect& getTextureRect(void) { return m_obRect; }
//得到精灵引用
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);
protected:
void updateColor(void);
virtual void setTextureCoords(CCRect rect);
virtual void updateBlendFunc(void);
virtual void setReorderChildDirtyRecursively(void);


**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新**
**[如果你需要这些资料,可以戳这里获取](https://gitee.com/vip204888)**