所用到的图片:
实现动画步骤:
1.读取2D纹理信息
2.记录单帧信息
3.生成逐帧数组
4.设置动画信息
5.设置起始帧
6.创建并执行动画
实现:新建一个Cocos2d-x项目,将图片放到工程资源中,修改HelloWorldSence.cpp中do代码块中的代码
CC_BREAK_IF(! CCLayer::init()); // Get window size and place the label upper. CCSize size = CCDirector::sharedDirector()->getWinSize(); // 1.读取2D纹理信息 CCTexture2D *texture = CCTextureCache::sharedTextureCache()->addImage("items.png"); //2.记录单帧信息 CCSpriteFrame* m_frame1 = CCSpriteFrame::createWithTexture(texture, CCRectMake(/*0, 128, 32, 32*/64, 160, 64, 16)); CCSpriteFrame* m_frame2 = CCSpriteFrame::createWithTexture(texture, CCRectMake(/*32, 128, 32, 32*/ 64, 176, 64, 16)); CCSpriteFrame* m_frame3 = CCSpriteFrame::createWithTexture(texture, CCRectMake(/*64, 128, 32, 32*/64, 192, 64, 16)); CCSpriteFrame* m_frame4 = CCSpriteFrame::createWithTexture(texture, CCRectMake(/*96, 128, 32, 32*/64, 208, 64, 16)); //3.生成逐帧数组 CCArray *animFrames = CCArray::create(); CC_BREAK_IF(!animFrames); animFrames->addObject(m_frame1); animFrames->addObject(m_frame2); animFrames->addObject(m_frame3); animFrames->addObject(m_frame4); //4.动画信息,设置间隔时间为0.5 CCAnimation *animation = CCAnimation::createWithSpriteFrames(animFrames, 0.5f); CC_BREAK_IF(! animation); //5.设置起始帧 CCSprite *hero = CCSprite::createWithSpriteFrame(m_frame1); CC_BREAK_IF(!hero); hero->setPosition(ccp(size.width/2, size.height/2)); this->addChild(hero, 0); //6.创建并执行动画 CCAnimate *animate = CCAnimate::create(animation); hero->runAction(CCRepeatForever::create(animate)); bRet = true;