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()里面的参数是时间
如有错误,希望大家提出来啊!!谢谢啊!!!!!