cocos2d-x学习笔记-帧动画

来源:互联网 发布:南朝和北朝的关系知乎 编辑:程序博客网 时间:2024/04/28 20:28

我们首先用TP将我们的资源图片压缩成一个大图片(包含plist和png文件),然后就把这张大图的这两个文件包含在我们的程序文件里,这样我们就可以做有意思的动画了。

现在介绍一些相关类:

为了方便地记录纹理的显示信息,Cocos2d-x提供了框帧类CCSpriteFrame。一个框帧包含两个属性,纹理与区域。纹理指的是将要被显示的纹理,而区域指的是此纹理将要被显示的部分。一个框帧可以完整地描述精灵显示的内容,因此在动画中,我们使用框帧来表示每一帧的内容。

   用CCAnimation描述一个动画,而精灵显示动画的动作则是一个CCAnimate对象。动画动作CCAnimate是精灵显示动画的动作,它由一个动画对象创建,并由精灵执行。

代码: 

                  CCSize winSize = CCDirector::sharedDirector()->getWinSize();CCSpriteFrameCache* cache = CCSpriteFrameCache::sharedSpriteFrameCache();char strPlist[64] = {0};char strPng[64] = {0};sprintf(strPlist,"spritesheet.plist");sprintf(strPng,"spritesheet.png");cache->addSpriteFramesWithFile(strPlist,strPng);CCArray* animFrames = CCArray::array();animFrames->initWithCapacity(8); char str[64] = {0};CCSprite* sprite = CCSprite::create("bear1.png");sprite->setTag(1);sprite->setPosition(ccp(winSize.width/2,winSize.height/2));this->addChild(sprite);                  for(int i = 1; i <= 8; i++){sprintf(str, "bear%d.png",i);CCSpriteFrame* frame = cache->spriteFrameByName( str );animFrames->addObject(frame);}CCAnimation* animation = CCAnimation::animationWithSpriteFrames(animFrames,0.1f);CCRepeatForever* walkAction=CCRepeatForever::actionWithAction( CCAnimate::actionWithAnimation(animation)); sprite ->runAction(walkAction);animFrames->release();  


 

原创粉丝点击