您的位置:首页 > 移动开发 > Cocos引擎

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

2013-08-27 13:30 363 查看
  本节学习和动画类CCAnimate相关的类,比如:CCAnimationCache类、CCAnimationFrame类、CCAnimation类等。下面我们就来一一学习:

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

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


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

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


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

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


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

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

sprite->runAction( CCRepeatForever::create(CCAnimate::create(animation)) );
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: