本文是参考了老G的小屋的的博客和无脑码农的视频写的一个学习笔记,大致内容可以参考他们的博客;需要说明的是:cocos2d-x的版本是:cocos2d-2.1rc0-x-2.1.2-hotfix + VS2010。
使用了一张草稚京的动画资源图片,自己制作的
主要的动画代码如下:
CCSize size = CCDirector::sharedDirector()->getWinSize();
//生成动画所需要的数据
CCTexture2D* pTexture = CCTextureCache::sharedTextureCache()->addImage("caozhijing2.png");
CCSpriteFrame* pFrame = NULL;
CCArray* pArray = CCArray::createWithCapacity(48);
for (int i = 0; i < 8; i++)
{
for (int j = 0; j < 6; j++)
{
pFrame = CCSpriteFrame::createWithTexture(pTexture,CCRectMake(304 * j, 224 * i, 304, 224));
pArray->addObject(pFrame);
}
}
CCAnimation* pAnimation = CCAnimation::createWithSpriteFrames(pArray,0.2f);
pArray->release();
CCSprite* pSprite = CCSprite::createWithSpriteFrame(pFrame);
pSprite->setPosition(ccp(size.width/2, size.height/2));
addChild(pSprite);
CCAnimate* pAnimate = CCAnimate::create(pAnimation);
pSprite->runAction(CCRepeatForever::create(pAnimate));
绘制效果如图:
简单介绍一下代码的流程,使用
CCTexture2D
加载图片 ,使用CCSpriteFrame创建动画的每一帧pFrame并将这些帧存储在数组中,将保存帧的数组加入到
CCAnimation生成动画数据,用CCAnimation生成CCAnimate(就是最终的动画动作),最后用CCSprite执行这个动作。其中调用的函数由于cocos2d-x的版本不同,成员函数也跟新了。