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);
}
{
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-x动画的实现方法
- cocos2d-x学习笔记(二)序列帧动画实现的几种方法
- cocos2d-x 实现地图中设置海量金币动画的方法
- Cocos2D游戏之旅(五):三种方法实现技能动画
- 实现动画的方法——计算机达人成长之路(21)
- 转iphone 动画实现方法
- cocos2d-x帧动画实现(续)
- 【iOS-Cocos2d游戏开发之二十二 】CCSpeed实现动画进行时慢动作\设置游戏加减速进行
- cocos2d-x帧动画实现(续)
- cocos2d-x 使用action实现各种动画效果
- iOS的动画效果类型及实现方法
- 【iOS-Cocos2d游戏开发之二十二 】CCSpeed实现CCAnimate动画进行时设置慢动作以及设置游戏加减速进行(塔防游戏必备)! .
- 实现动画的方法——计算机达人成长之路(21)
- iphone的动画效果类型及实现方法
- iPhone的动画效果类型及实现方法
- cocos2d-x 使用action实现各种动画效果
- j2me drawImage方法实现的连续动画
- objective-C 中两种实现动画的方法
- iphone的动画效果类型及实现方法
- 【iOS-Cocos2d游戏开发之二十二 】CCSpeed实现CCAnimate动画进行时设置慢动作以及设置游戏加减速进行(塔防游戏必备)! .