cocos2d-x CCSpriteFrameCache

来源:互联网 发布:音效素材软件 编辑:程序博客网 时间:2024/06/02 02:41

  首先得知道CCSpriteFrameCache为精灵帧缓存,那它该怎么用呢?有是什么时候该使用的呢?

   CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("Background1.plist");//通过单例创建一个单例,然后使用方法addSpriteFramesWithFile(该方法为通过一个文件添加精灵帧),我们可以把事先准备的好的图片用texturepacker  工具制作成plist和pvr.ccz文件,网上有详细的说明为什么制作动画时候回把图片制作成pvr.ccz以及plist文件,以及texturepacker工具怎么使用我不详细说明了。 

 如果你只是想通过pvr.ccz文件和plist创建一个精灵的话方法如下:

  CCSize winSize =CCDirector::sharedDirector()->getWinSize();

  CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("Background1.plist");//这个是你通过texturepacker软件生成的plist文件

    CCSprite *backGroundSprite = CCSprite::createWithSpriteFrameName("dl_menu_01a.png");//这个是你通过texturepacker软件生成的图片,这个软件可以生成很多类型的文件,有png,pvr.ccz等。

    backGroundSprite->setAnchorPoint(ccp(0,0));

    this->addChild(backGroundSprite, -1);

    如果你想通过pvr.ccz文件和plist创建一个动画的话方法如下:

//将plist属性文件中的每一帧加载到SpriteFrameCache

     CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("npc.plist");

    CCAnimation *animationnpc = CCAnimation::create();//创建一个动画对象

  animationnpc->setDelayPerUnit(0.08f);//设置动画的播放间隔时间

  char  str[10];

    for(int i = 1; i <= 4; i++)

        {

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

        CCSpriteFrame* frame =  CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName(str);

        animationnpc->addSpriteFrame(frame);

        }

    CCSprite * spritenpc=CCSprite::createWithSpriteFrame( CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("a01.png"));

    spritenpc->runAction(CCRepeatForever::create(

                                                   CCAnimate::create(animationnpc)));

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

    this->addChild(spritenpc,3);


原创粉丝点击