CCSize s = CCDirector::sharedDirector()->getWinSize();
//#1:生成动画需要的数据类
CCTexture2D *texture=CCTextureCache::sharedTextureCache()->addImage("female.png");
CCSpriteFrame *frame0=CCSpriteFrame::frameWithTexture(texture,CCRectMake(32*0, 48*0, 32, 48));
CCSpriteFrame *frame1=CCSpriteFrame::frameWithTexture(texture,CCRectMake(32*1, 48*0, 32, 48));
CCSpriteFrame *frame2=CCSpriteFrame::frameWithTexture(texture,CCRectMake(32*2, 48*0, 32, 48));
CCSpriteFrame *frame3=CCSpriteFrame::frameWithTexture(texture,CCRectMake(32*3, 48*0, 32, 48));
CCArray *animFrames = CCArray::createWithCapacity(4);
animFrames->addObject(frame0);
animFrames->addObject(frame1);
animFrames->addObject(frame2);
animFrames->addObject(frame3);
CCAnimation *animation = CCAnimation::createWithSpriteFrames(animFrames, 0.2f);
//animFrames->release();
//#2:初始化并设置Sprite
CCSprite *sprite = CCSprite::spriteWithSpriteFrame(frame0);//设置一个初始frame
sprite->setPosition( ccp( s.width/2, s.height/2) );
this->addChild(sprite);
//#3:使用animation生成一个动画动作animate
CCAnimate *animate = CCAnimate::actionWithAnimation(animation);
sprite->runAction(CCRepeatForever::actionWithAction(animate));//重复播放
我用的是cocos2d-x2.0.4的版本。每一版本还是有一些改动的,我们看老G老师的博客或者是那些网上教程教的实现方法很多可能被官方废除了,所以这个是建立动画的代码,根据老G老师的代码改的,在2.0.4应该能运行。我也是不太会,刚开始学习,这个代码调了好几个小时!!悲哀啊。
CMutableArray<CCSpriteFrame*>听说已经被废除在2.0以后版本,在这里看了cocos2d-x官方中文论坛版主无脑码农的代码,是用CCArray的类来取代原来的CCMutableArray<CCSpriteFrame*>。大家可以去老G老师的博客看看,我跟他使用的cocos2d-x版本不同,老G老师用的版本是比较早的,所以还是有一些修改,大家可以对照下。
C
这个是图片,老G老师实现的是最上一排走向我们的一组,这个animation动画还是很繁琐的。。。
大家可以去老G老师的博客,关于简单动画的地址如下:
http://4137613.blog.51cto.com/4127613/759610