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()里面的參數是時間
?
如有錯誤,希望大家提出來啊!!謝謝啊!!!!!
轉載于:https://www.cnblogs.com/liutianwen/archive/2012/04/18/cocos2d-xD.html
總結
以上是生活随笔為你收集整理的cocos2d-x 连帧动画实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NTP服务的架设
- 下一篇: HDOJ 1018(阶乘位数)