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

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

2014-09-09 09:17 357 查看
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); 

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  精灵帧动画 cocos2d