生产动画步骤:
1、获取数据(获取图片,获取每帧,存储在数组中,组成动画)
2、用动画生成动画动作
3、创建精灵,将动画动作放到精灵中
代码:
CCSize s = CCDirector::sharedDirector()->getWinSize();
//#1:获取图片 获取每帧图片
CCTexture2D *pTexture = CCTextureCache::sharedTextureCache()->addImage("122458972.png");
CC_BREAK_IF(! pTexture);
CCSpriteFrame *pFrame0 = CCSpriteFrame::createWithTexture(pTexture, CCRectMake(32*0, 48*0, 32, 48));
CCSpriteFrame *pFrame1 = CCSpriteFrame::createWithTexture(pTexture, CCRectMake(32*1, 48*0, 32, 48));
CCSpriteFrame *pFrame2 = CCSpriteFrame::createWithTexture(pTexture, CCRectMake(32*2, 48*0, 32, 48));
CCSpriteFrame *pFrame3 = CCSpriteFrame::createWithTexture(pTexture, CCRectMake(32*3, 48*0, 32, 48));
CC_BREAK_IF(! pFrame0);
CC_BREAK_IF(! pFrame1);
CC_BREAK_IF(! pFrame2);
CC_BREAK_IF(! pFrame3);
//#2: 将每帧图片放到数组中
CCArray *pArrayFrame = CCArray::createWithCapacity(4);
CC_BREAK_IF(! pArrayFrame);
pArrayFrame->addObject(pFrame0);
pArrayFrame->addObject(pFrame1);
pArrayFrame->addObject(pFrame2);
pArrayFrame->addObject(pFrame3);
//#3: 组成动画
CCAnimation *pAnimation = CCAnimation::createWithSpriteFrames(pArrayFrame, 0.2f);
CC_BREAK_IF(! pAnimation);
//#4:用动画生成动画动作
CCAnimate *pAnimate = CCAnimate::actionWithAnimation(pAnimation);
CC_BREAK_IF(! pAnimate);
//#5:建精灵,将动画动作放到精灵中
CCSprite *pSprite = CCSprite::createWithSpriteFrame(pFrame0);//设置一个初始frame
CC_BREAK_IF(! pSprite);
pSprite->setPosition( ccp(s.width/2, s.height/2) );
pSprite->runAction(CCRepeatForever::create(pAnimate));//重复播放
this->addChild(pSprite, 2);