cocos2d-x for wp之精靈動作——Actions

 

CCFiniteTimeAction:有限次動作執行類,就是按時間順序執行一系列動作,執行完後動作結束;這裏我們就是學習這個類

從圖中,我們可以看出動作主要分爲兩大類:CCActionInstanse(瞬時動作的基類)和CCActionInterval(延時動作的基類)

 CCActionInstanse(瞬時動作的基類)

CCCallFunc :執行函數   CCFlipX/Y:  X/Y翻轉          CCHide :隱藏

CCPlace : 設置位置       CCReuseGrid :重用網格     CCShow :顯示

CCStopGrid :停止網格   CCToggleVisibility : 可見切換

CCActionInterval(延時動作的基類)我們用的最多的就是延時動作。CCActionInterval的子類有很多,可以通過cocos2d-x自帶的tests例子來學習。

主要有這些動作:

CCMoveTo/CCMoveBy :移動     CCScaleTo/CCScaleBy:縮放    CCRotateTO/CCRotateBy:旋轉 

CCSkewTo/CCSkewBy :扭曲     CCJumpTo/CCJumpBy :跳躍   CCBezierTo/CCBezierBy :貝塞爾曲線

CCBink :閃爍                          CCFadeIn/CCFadeOut :淡入淡出  CCTintTo/CCTintBy :染色

CCSpawn :同步                       CCRepeat/CCRepeatForever :有/無限次重複

CCDelayTime:延遲

下面是一個例子:grossini是一個精靈

CCActionInterval actionBy = CCJumpBy.actionWithDuration(2, new CCPoint(100, 100), 50, 4);
CCFiniteTimeAction actionByBack = actionBy.reverse();

grossini.runAction(CCSequence.actions(actionBy, actionByBack));

 

而一般我們都可以這樣寫,將幾個動作一起組合在一起來實現精靈的動作。

CCAction action = CCSequence.actions(
CCSpawn.actions(CCAnimate.actionWithAnimation(animation, false),
CCMoveBy.actionWithDuration(0.28f, position),
CCCallFuncND.actionWithTarget(this, onWalkDone, tag))
);
grossini.runAction(action);

CCSequence 是動作序列,把若干個動作按順序組合在一起,然後依次執行。 

CCSpawn 是將若干個動作組合在一起,同時執行它們(並行執行),執行時間以最長的那個動作爲準。

參數是CCFiniteTimeAction[] actions一個動作數組,比如說CCMoveBy、CCSkewBy、CCScaleBy等動作數組。一般在CCSpawn的最後一個動作放一個CCCallFunc,放一個回調函數(這裏是onWalkDone)作爲動作執行完後的處理(比如說:顯示信息、人物面向等)。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章