精灵对象可以是游戏中的主角,也可以是汽车,也可以是一棵树。哪怕是一片树叶或者是一只鸟,都是一个精灵对象。从技术的角度来看,精灵对象就是一个可以不断变化的图片。精灵本身具备了一些特殊的属性,比如纹理、尺寸、翻转、透明度以及角度。
- /* CCSprite类对象创建函数 */
- // 创建精灵对象
- static CCSprite *create();
- // 以图片文件来创建精灵对象
- static CCSprite *create(const char *pszFileName);
- // 以图片文件中一块区域来创建精灵对象
- static CCSprite *create(const char *pszFileName,const CCRect &rect);
- // 以精灵帧来创建精灵对象
- static CCSprite *create(CCSpriteFrame *pSpriteFrame);
- // 以精灵帧名字来创建精灵对象
- static CCSprite *createWithSpriteFrameName(const char *pszSpriteFrameFileName);
- // 以纹理图片来创建精灵对象
- static CCSprite *create(CCTexture2D *pTexture);
- // 以纹理图片中的矩形区域来创建精灵对象
- static CCSprite *create(CCTexture2D *pTexture,const CCRect &rect);
- /* CCSpriteFrame精灵帧类的属性 */
- CCPoint m_obOffset; // 偏移量
- CCSize m_obOriginalSize; // 纹理原始尺寸
- CCRect m_obRectInPixels; // 纹理像素尺寸
- bool m_obRotated; // 是否旋转
- CCRect m_obRect; // 矩形区域
- CCPoint m_obOffsetInPixels; // 像素单位的偏移量
- CCSize m_obOriginalSizeInPixels; // 像素单位的原始尺寸
- CCTexture2D *m_pobTexture; // 纹理对象
- std::string m_strTextureFileName; // 纹理名称
- /* CCSpriteFrame精灵帧对象的创建函数 */
- // 以纹理对象中的矩形区域来创建精灵帧
- static CCSpriteFrame *create(CCTexture2D *pobTexture,const CCRect &rect);
- // 以纹理图片中的矩形区域来创建精灵帧
- static CCSpriteFrame *create(const char *fileName,const CCRect &rect);
- // 以纹理对象中的矩形区域来创建精灵帧,包含属性初始化参数
- static CCSpriteFrame *create(CCTexture2D *pobTexture,const CCRect &rect,bool rotated,const CCPoint &offset,const CCSize &originalSize);
- // 以纹理图片中的矩形区域来创建精灵帧,包含属性初始化参数
- static CCSpriteFrame *create(const char *fileName,const CCSize &originalSize);
- /* CCSpriteFrameCache精灵帧缓冲函数 */
- // 从plist文件中加载多个精灵帧
- void addSpriteFrameWithFile(const char *pszPlist);
- // 从plist文件中加载多个精灵帧,参数为纹理图片
- void addSpriteFrameWithFile(const char *plist,const char *textureFileName);
- // 从plist文件中加载多个精灵帧,参数为纹理对象
- void addSpriteFrameWithFile(const char *pszPlist,CCTexture2D *pobTexture);
- // 将按照参数中的名字添加一个精灵帧
- void addSpriteFrame(CCSpriteFrame *pobFrame,const char *pszFrameName);
- // 清除所有精灵帧对象
- void removeSpriteFrames(void);
- // 清楚未使用的精灵帧对象
- void removeUnUsedSpriteFrames(void);
- // 按照参数中的名字来清除精灵帧对象
- void removeSpriteFrameByName(const char *pszName);
- // 按照plist文件内容,来清除精灵帧
- void removeSpriteFramesFromFile(const char *plist);
- // 按照纹理对象来清除精灵帧
- void removeSpriteFramesFromTexture(CCTexture2D *texture);
- void HelloWorld::spriteHandle()
- {
- CCSprite *sprite = CCSprite::create("Icon-57.png");
- sprite->setPosition(ccp(75,150));
- this->addChild(sprite);
- // 旋转角度
- sprite->setRotation(100.0f);
- // 整体缩放
- sprite->setScale(0.5);
- // 对X轴缩放
- sprite->setScaleX(0.5);
- // 对Y轴缩放
- sprite->setScaleY(0.5);
- // 对X轴镜像
- sprite->setFlipX(true);
- // 对Y轴镜像
- sprite->setFlipY(true);
- // 设置透明度
- sprite->setOpacity(100);
- // 设置是否可见
- sprite->setVisible(true);
- // 设置锚点
- sprite->setAnchorPoint(ccp(1.0,1.0));
- // 设置颜色
- sprite->setColor(ccc3(100,100,100));
- }