Cocos2d-X 精灵帧动画的实现方法

void HelloWorld::testSpriteFrame()

{

   CCSpriteFrameCache* cache = CCSpriteFrameCache::sharedSpriteFrameCache();

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

   

   CCSprite* sp=CCSprite::createWithSpriteFrameName("Zombie20.png");

   sp->setPosition(ccp(500,205));

   sp->setTag(20);

   this->addChild(sp);


   //将文件中的作为一个字典读取出来

   CCDictionary* dic =CCDictionary::createWithContentsOfFile("Zombie_default.plist");

   dic->retain();

  

   

   //获取所有的精灵帧

    CCDictionary* frameDic =(CCDictionary*)dic->objectForKey("frames");

   frameDic->retain();

 //获取数量

    int num= frameDic->allKeys()->count();

    CCArray *allframes=CCArray::createWithCapacity(10);

   for (int i = 0; i < num ; ++i) {

       char frame[50];

       sprintf(frame, "Zombie%d.png",i+1);

       //获取具体的精灵帧并将其添加到精灵帧组中

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

       allFrames->addObject(frameName);

    }

   

   //根据精灵帧数组创建CCAnimation

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

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

   CCRepeatForever* forever = CCRepeatForever::create(animate);

   CCMoveTo* move = CCMoveTo::create(30, ccp(-20, 200));

   sp->runAction(forever);

   sp->runAction(move); 

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值