cocos2d-x 2.0 学习笔记--简单动画

参考资料:http://4137613.blog.51cto.com/4127613/759610

资源图片:


代码:
bool HelloWorld::init()
{
    bool bRet = false;
    do 
    {
        // 获得屏幕大小
        CCSize size = CCDirector::sharedDirector()->getWinSize();
        
        // 读取纹理
        CCTexture2D* pTexture = CCTextureCache::sharedTextureCache()->addImage("anim1.png"); 
        //1:生成动画需要的数据类
        CCSpriteFrame* frame0 = CCSpriteFrame::createWithTexture( pTexture, CCRectMake( 32*0, 48*0, 32, 48 ) ); 
        CCSpriteFrame* frame1 = CCSpriteFrame::createWithTexture( pTexture, CCRectMake( 32*1, 48*0, 32, 48 ) ); 
        CCSpriteFrame* frame2 = CCSpriteFrame::createWithTexture( pTexture, CCRectMake( 32*2, 48*0, 32, 48 ) ); 
        CCSpriteFrame* frame3 = CCSpriteFrame::createWithTexture( pTexture, CCRectMake( 32*3, 48*0, 32, 48 ) ); 

        CCAnimation *animation = CCAnimation::create(); 
        animation->addSpriteFrame(frame0);
        animation->addSpriteFrame(frame1);
        animation->addSpriteFrame(frame2);
        animation->addSpriteFrame(frame3);
        animation->setDelayPerUnit(0.2f);
        CC_BREAK_IF( !animation );

        //2:初始化并设置Sprite 
        CCSprite *sprite = CCSprite::createWithSpriteFrame(frame0);//设置一个初始frame 
        CC_BREAK_IF( !sprite );
        sprite->setPosition( ccp( 200, 200) );
        this->addChild( sprite, 2 );

        //3:使用animation生成一个动画动作animate
        CCAnimate *animate = CCAnimate::create(animation); 
        CC_BREAK_IF( !animate );
        CCRepeatForever *repeat = CCRepeatForever::create(animate);
        sprite->runAction(repeat);//重复播放 
        
        bRet = true;
    } while (0);
       
    return bRet;
}

 

 

 

posted @ 2013-02-19 16:04  燧木人  阅读(337)  评论(0编辑  收藏  举报