文章目录
  1. 1. 动画
    1. 1.1. CCAnimation
    2. 1.2. CCAnimate
    3. 1.3. CCAnimationFrame
    4. 1.4. CCSpriteFrame
    5. 1.5. 简单代码实现
  2. 2. 场景特效
    1. 2.1. CCTransitionScene

动画

纹理间切换是一个巨大的开销,由于精灵可以显示部分纹理,所以通常高效的做法是把动画用到的多个纹理按照一定的顺序排列起来,放置在同一个纹理中。

CCAnimation

由动画帧组成,表示一个动画的内容。

CCAnimate

动画的播放器,使用动画对象创建,只能作用于精灵。

CCAnimationFrame

动画帧:由框帧与单位延时组成,可以表示变速动画中的一帧。

CCSpriteFrame

框帧。包含纹理与纹理的一个矩形区域,表示纹理的一部分。

简单代码实现

void MyActionAnimateLayer::initLayer() {  
    CCSize size = CCDirector::sharedDirector()->getWinSize();  
    CCSprite *sprite = CCSprite::create("grossini.png");  
    this->addChild(sprite, 1);  
    sprite->setPosition(ccp(size.width / 2.0f, size.height / 2.0f));  

    CCAnimation* animation = CCAnimation::create();  
    for( int i=1;i<15;i++)  
    {  
        char szName[100] = {0};  
        sprintf(szName, "Images/grossini_dance_%02d.png", i);  
        animation->addSpriteFrameWithFileName(szName); //加载动画的帧  
    }  
    animation->setDelayPerUnit(2.8f / 14.0f);  
    animation->setRestoreOriginalFrame(true);  
    animation->setLoops(10); //动画循环10次  
    CCAnimate *animate = CCAnimate::create(animation);  
    sprite->runAction(CCSequence::create(animate, animate->reverse(), NULL));  
}  

场景特效

CCTransitionScene

派生自CCScene。

CCDirector::sharedDirector()->replaceScene(CCTransitionFlipX::transitionWithDuration(2,pScene));
文章目录
  1. 1. 动画
    1. 1.1. CCAnimation
    2. 1.2. CCAnimate
    3. 1.3. CCAnimationFrame
    4. 1.4. CCSpriteFrame
    5. 1.5. 简单代码实现
  2. 2. 场景特效
    1. 2.1. CCTransitionScene