Cocos2d-x学习笔记(二十三)之 动画

  本节学习和动画类CCAnimate相关的类,比如:CCAnimationCache类、CCAnimationFrame类、CCAnimation类等。下面我们就来一一学习:

  1、动画缓存类CCAnimationCache:是一个单例,用于缓存所有的动画和动画帧,使用示例如下:

1 //获得动画缓存类CCAnimationCache
2 CCAnimationCache* animCache = CCAnimationCache::shareAnimationCache();
3 //通过addAnimation函数加入动画,并给动画命名。
4 animCache->addAnimation( animation, "dan" );
5 //通过调用animationByName函数传入动画名获得相应动画。
6 CCAnimation* normal = animCache->animationByName( "dan" );

  2、动画帧类CCAnimationFrame:是单张的图片,也可以通过精灵帧定义。使用示例如下:

1 //定义一个CCSpriteFrame类的实例对象。
2 CCSpriteFrame* frame = (CCSpriteFrame*)pObj;
3 //定义一个CCAnimationFrame对象。
4 CCAnimationFrame* animFrame = new CCAnimationFrame();
5 //通过CCSpriteFrame初始化动画帧CCAnimationFrame,参数:精灵帧CCSpriteFrame、动画帧的延迟时间、CCDictionnary类型的信息。
6 animFrame->initWithSpriteFrame( frame, 1, NULL );

  3、动画类CCAnimation:就是动画,储存一个动画动作需要的所有帧,可以通过帧的数组定义。使用示例如下:

1 //定义一数组
2 CCArray* animFrames = CCArray::create();
3 //从动画缓存中获得一个动画帧
4 CCAnimationFrame* frame = cache->spriteFrameByName( "dan_1" );
5 //把动画帧添加到数组中
6 animFrames->addObject( frame );
7 //定义动画CCAnimation
8 CCAnimation* animation = CCAnimation::create( animFrames, 0.3f );

  也可以用精灵帧CCSpriteFrame来定义动画。

  4、动画动作CCAnimate:就是一个动作类,可以通过CCAnimation动画来定义CCAnimate动画动作,使用示例如下:

1 sprite->runAction( CCRepeatForever::create(CCAnimate::create(animation)) );

 

posted @ 2013-08-27 13:30  【Winco】  阅读(296)  评论(0编辑  收藏  举报