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

cocos2d-x游戏开发(十六)帧动画

2015-07-16 15:54 369 查看
欢迎转载:/article/1353892.html

本来想写一下帧动画的,搜了一下网上好像有一大把,就懒得写了,直接贴代码。

[cpp] view
plaincopyprint?

// 精灵帧缓存

CCSpriteFrameCache *cache = CCSpriteFrameCache::sharedSpriteFrameCache();

// 添加 plist文件到缓存

cache->addSpriteFramesWithFile("lightning.plist");

// 创建数组用来存放帧序列

CCArray *animFrames = CCArray::create();



char str[64] = {0};

for (int i = 1; i <= 18; ++i) {

sprintf(str, "lightning%02d.png", i);

CCSpriteFrame *frame = cache->spriteFrameByName(str);

CCLOG(str);

// 添加帧到数组

animFrames->addObject(frame);

}



// 用帧序列生成帧动画信息,设定帧间隔时间

CCAnimation *animation = CCAnimation::createWithSpriteFrames(animFrames, 0.08);

animation->setRestoreOriginalFrame(true);

// 动画缓存,取名字

CCAnimationCache::sharedAnimationCache()->addAnimation(animation, "Lightning");

// 获取第一帧

CCSpriteFrame *frame = CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("lightning01.png");

// 用第一帧作静态图

CCSprite *first = CCSprite::createWithSpriteFrame(frame);

first->setPosition(ccp(100, 100));

this->addChild(first);



// 用名字在缓存取帧动画信息

CCAnimation *anim = CCAnimationCache::sharedAnimationCache()->animationByName("Lightning");

// 有动画信息生成动画

CCAnimate *animate = CCAnimate::create(anim);

// 执行动画

first->runAction(CCRepeatForever::create(animate));

本来还想做个gif的,mac下的那个软件太贵了,就算了。看个截图





版权声明:本文为博主原创文章,转载请注明出处 http://blog.csdn.net/dawn_moon
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: