精灵对象可以是游戏中的主角,也可以是汽车,也可以是一棵树。哪怕是一片树叶或者是一只鸟,都是一个精灵对象。从技术的角度来看,精灵对象就是一个可以不断变化的图片。精灵本身具备了一些特殊的属性,比如纹理、尺寸、翻转、透明度以及角度。
/* 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);
/* CCSpriteBatchNode精灵集合 */
// 以纹理里创建一个精灵集合对象
static CCSpriteBatchNode *create(CCTexture2D *pTexture, unsigned int capacity = 29);
// 以图片文件来创建一个精灵集合
static CCSpriteBatchNode *create(const char *fileImage, unsigned int capacity = 29);
/* 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 CCRect &rect, bool rotated, const CCPoint &offset, 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));
}