plist文件生成及使用(帧动画实现)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hwhzyy/article/details/54344053

生成plist文件(  cocos studio  和  TexturePacker  两种方式):

1、打开cocos studio,并新建项目。

2、点击菜单的文件----新建文件----合图----取名称。

3、把需要的png图片拖进项目下,再拖入中间的大页面。

4、点击右边的导出合图,并选择文件夹,导出。


1、打开TexturePacker,将图片拖入。

2、设置OutPut Files的路径和名称

3、点击Publish按钮


使用:

1、先将plist的图片加入缓存,再使用相应方法读取图片,例子:

SpriteFrameCache::getInstance()->addSpriteFramesWithFile("menu.plist","menu.png");//(只需要做一次)

Sprite* bg =Sprite::createWithSpriteFrameName("MainMenu.png");//(MainMenu.png在menu.plist里面)


2、播放动画,例子:

    SpriteFrameCache* pCache =SpriteFrameCache::getInstance();

    pCache->addSpriteFramesWithFile("runs.plist");//(s_1.png在runs.plist里面)

    mainsprite =Sprite::create();

    Vector<SpriteFrame*> runs;

    runs.pushBack(pCache->spriteFrameByName("s_1.png"));

    runs.pushBack(pCache->spriteFrameByName("s_2.png"));

    runs.pushBack(pCache->spriteFrameByName("s_3.png"));

    runs.pushBack(pCache->spriteFrameByName("s_4.png"));

    Animation* pAnimation =Animation::createWithSpriteFrames(runs,0.2f);

    pAnimation->setRestoreOriginalFrame(true);

    pAnimation->setDelayPerUnit(0.1f);

    Sequence* taskList=Sequence::create(Animate::create(pAnimation),NULL);

    mainsprite->runAction(RepeatForever::create(taskList));


3、生成xml文件播放动画

在plist和png目录下,制作xml动画文件,比如

<?xml version="1.0" encoding="UTF-8"?>

<root>

    <plists>

        <plist>run.plist</plist>

    </plists>

    <animations>

        <animation>

            <name>goldEffect</name>

            <delay>0.16</delay>

            <flipX>false</flipX>

            <flipY>false</flipY>

            <spriteFrame>com_fly_chip_00.png</spriteFrame>

            <spriteFrame>com_fly_chip_01.png</spriteFrame>

            <spriteFrame>com_fly_chip_02.png</spriteFrame>

            <spriteFrame>com_fly_chip_03.png</spriteFrame>

            <spriteFrame>com_fly_chip_04.png</spriteFrame>

            <spriteFrame>com_fly_chip_05.png</spriteFrame>

        </animation>

    </animations>

</root>


复制AnimatePacker.h、AnimatePacker.cpp、Singleton.h文件在项目下。

点此可下载以上三个类

先加载动画-->AnimatePacker::getInstance()->loadAnimations("run.xml");

再使用动画-->people->runAction(Sequence::create(AnimatePacker::getInstance()->getAnimate("goldEffect"),NULL));


4、使用单张图片,例子:

mainsprite->setSpriteFrame(Sprite::createWithSpriteFrameName("s_2.png")->getSpriteFrame());





展开阅读全文

没有更多推荐了,返回首页