cocos2d-x 连帧动画实现

最开始的动画片也是用图片叠加的方法,下面介绍如何有多张图片实现一个小小的动画:

首先,把你要进行叠加的图片命名成 Name(数字)的形式:如 name1,name2... ...

然后在你的init函数里面:

CCSprite *p2 = CCSprite::spriteWithFile("name1.png");//首先还是要创建一个精灵对象


p2->setPosition(CCPointMake(240,160));

this->addChild (p2,1);

CCAnimation* animation = CCAnimation::animation();

  char frameName[100] = {0};

  for( int i=1;i<=4;i++)    //图片的张数

  {

        sprintf(frameName, "name%d.png", i);       //循环

       animation->addFrameWithFileName(frameName);   

   }

    CCActionInterval*  action = CCAnimate::actionWithDuration(0.5f, animation, false);   //0.5f 是切换图片的时间

  CCActionInterval*  action_back = action->reverse();//返回到原先的状态

  sp2->runAction(action);

 

这样就实现了简单的连帧动画了!

同时你可以定义其他的动作:

CCMoveTo

CCMoveBy

CCJumpTo

。。。

等等其他的动作,然后用 sp2->runAction(CCSequence::actions(action1,action2,action3,NULL));//不要忘了加NULL哦
  

有的时候你想执行一个动作之后,经过一段时间再去执行另外一个动作

这时候你可以用到延时:

延时是:CCDelayTime

cocos2d-x都是英文式的 意思都很容易看懂,有时候你可以在自动补齐中找到你自己想要的函数,然后看需要加入什么参数。

如上面的 你在执行了action1后想经过三秒再执行action2

可以这样实现

sp2->runAction(CCSequence::actions(action1,CCDelayTime:;actionWithDuration(3),action2,NULL));//actionWithDuration()里面的参数是时间

 

如有错误,希望大家提出来啊!!谢谢啊!!!!!

posted @ 2012-04-18 20:49  EWen.流  阅读(1192)  评论(0编辑  收藏  举报