cocos2d-x 连帧动画实现
最開始的動(dòng)畫片也是用圖片疊加的方法,下面介紹如何有多張圖片實(shí)現(xiàn)一個(gè)小小的動(dòng)畫:
首先,把你要進(jìn)行疊加的圖片命名成 Name(數(shù)字)的形式:如 name1,name2... ...
然后在你的init函數(shù)里面:
CCSprite *p2 = CCSprite::spriteWithFile("name1.png");//首先還是要?jiǎng)?chuàng)建一個(gè)精靈對(duì)象
p2->setPosition(CCPointMake(240,160));
this->addChild (p2,1);
CCAnimation* animation = CCAnimation::animation();
??char frameName[100] = {0};
??for( int i=1;i<=4;i++) ???//圖片的張數(shù)
{
????sprintf(frameName, "name%d.png", i);???????//循環(huán)
? animation->addFrameWithFileName(frameName); ??
?}
?? CCActionInterval*? action = CCAnimate::actionWithDuration(0.5f, animation, false);???//0.5f 是切換圖片的時(shí)間
CCActionInterval*? action_back = action->reverse();//返回到原先的狀態(tài)
sp2->runAction(action);
?
這樣就實(shí)現(xiàn)了簡(jiǎn)單的連幀動(dòng)畫了!
同時(shí)你可以定義其他的動(dòng)作:
CCMoveTo
CCMoveBy
CCJumpTo
。。。
等等其他的動(dòng)作,然后用 sp2->runAction(CCSequence::actions(action1,action2,action3,NULL));//不要忘了加NULL哦
??
有的時(shí)候你想執(zhí)行一個(gè)動(dòng)作之后,經(jīng)過一段時(shí)間再去執(zhí)行另外一個(gè)動(dòng)作
這時(shí)候你可以用到延時(shí):
延時(shí)是:CCDelayTime
cocos2d-x都是英文式的 意思都很容易看懂,有時(shí)候你可以在自動(dòng)補(bǔ)齊中找到你自己想要的函數(shù),然后看需要加入什么參數(shù)。
如上面的 你在執(zhí)行了action1后想經(jīng)過三秒再執(zhí)行action2
可以這樣實(shí)現(xiàn)
sp2->runAction(CCSequence::actions(action1,CCDelayTime:;actionWithDuration(3),action2,NULL));//actionWithDuration()里面的參數(shù)是時(shí)間
?
如有錯(cuò)誤,希望大家提出來啊!!謝謝啊!!!!!
轉(zhuǎn)載于:https://www.cnblogs.com/liutianwen/archive/2012/04/18/cocos2d-xD.html
總結(jié)
以上是生活随笔為你收集整理的cocos2d-x 连帧动画实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NTP服务的架设
- 下一篇: HDOJ 1018(阶乘位数)