cocos2d 加载 plist文件(帧动画)

来源:互联网 发布:衣服软件 编辑:程序博客网 时间:2024/05/08 23:09

将图片整合成一个大的图片,缩小图片占用,就有了plist文件和png配套文件。

cocos加载plist文件有2种方式(查询的)
1、若采用如下方式进行加载的话,你的plist文件中必须含有animations节点,否则加载失败

auto cache = AnimationCache::getInstance(); cache->addAnimationsWithFile("animations/animations-2.plist"); 

2、手动添加的方法需要将每一帧要显示的精灵有序添加到Animation类中,并设置每帧的播放时间,让动画能够匀速播放。另外,还要通过setRestoreOriginalFrame来设置是否在动画播放结束后恢复到第一帧。创建好Animation实例后,需要创建一个Animate实例来播放序列帧动画。(摘抄自网络)

    /×注意添加搜索路径,如果不是资源根目录,很可能加载不成功×/    FileUtils::getInstance()->addSearchPath("Game/anamate/");    CCSpriteFrameCache *frameCache = CCSpriteFrameCache::sharedSpriteFrameCache();    frameCache->addSpriteFramesWithFile("Emoji.plist");e    /×逐帧将png加入到缓存中×/    Vector<SpriteFrame*> animations;    char str[100] = { 0 };    for (int i = 1; i <= 3; i++)    {        sprintf(str, "1_%d.png", i);        CCSpriteFrame *frame = frameCache->spriteFrameByName(str);        animations.pushBack(frame);    }    /×间隔0.2s,2次循环×/    cocos2d::CCAnimation* my_animation = CCAnimation::createWithSpriteFrames(animations, 0.2f, 2);    CCAnimationCache::sharedAnimationCache()->addAnimation(my_animation, "smile");    cocos2d::CCAnimate* my_ani = CCAnimate::create(my_animation);    cocos2d::Sprite × my_test_sp = CCSprite::create();#if  1    my_test_sp->setSpriteFrame("1_1.png");#else    CCSpriteFrame* frame = frameCache->spriteFrameByName("1_1.png");    my_test_sp->setDisplayFrame(frame);#endif    my_test_sp->setPosition(500, 500);    addChild(my_test_sp);    my_test_sp->runAction(Sequence::create(my_ani, CCHide::create(), nullptr));

以上是完整的加载和播放

但是如果之后过程中还要重复不定期启用的话(调用)

    cocos2d::CCAnimate * my_ani = CCAnimate::create(my_animation);    my_test_sp->runAction(Sequence::create(my_ani, CCHide::create(), nullptr));    my_test_sp->setVisible(true);
原创粉丝点击