http://blog.csdn.net/u010105970/article/details/40593059
动画在游戏中是非常常见的
程序1:创建一个简单的动画
首先需要在工程目录下的Resource文件夹中放一张有各种不同动作的图片
- #include"Animation.h"
- CCScene*Animation::scene()
- {
- CCScene*s=CCScene::create();
- Animation*layer=Animation::create();
- s->addChild(layer);
- returns;
- }
- boolAnimation::init()
- {
- CCLayer::init();
- CCSizewinSize=CCDirector::sharedDirector()->getWinSize();
- //创建精灵
- CCSprite*sp=CCSprite::create();
- sp->setPosition(ccp(winSize.width/2,winSize.height/2));
- addChild(sp);
- //精灵放大4倍
- sp->setScale(4);
- //创建纹理
- CCTexture2D*texture=CCTextureCache::sharedTextureCache()->addImage("walkLeft.png");
- //创建一个数组
- CCArray*arr=CCArray::create();
- //从纹理中扣了10帧frame,组成数组
- for(inti=0;i<10;i++)
- //使用纹理创建精灵帧
- //第一个参数:纹理
- //第二个参数:矩形
- CCSpriteFrame*frame=CCSpriteFrame::createWithTexture(texture,
- //第一个参数:矩形的x坐标
- //第二个参数:矩形的y坐标
- //第三个参数:矩形的宽度
- //第四个参数:矩形的高度
- CCRect(i*18,18,32));
- arr->addObject(frame);
- }
- //使用精灵帧创建动画
- //第一个参数:数组
- //第二个参数:动画的帧数(播放两张图片的间隔时间)
- CCAnimation*animation=CCAnimation::createWithSpriteFrames(arr,0.1f);
- CCAnimate*animate=CCAnimate::create(animation);
- //播放动画
- //CCRepeatForever::create动画播放无限次
- sp->runAction(CCRepeatForever::create(animate));
- returntrue;
- } @H_220_301@
执行结果:
程序2:有plist文件的动画加载
首先需要在工程目录下的Resource文件夹中放一张有各种不同动作的图片和一个plist文件