遊戲很大程度上是由動作畫面支撐起來的。
動作分為兩大類:瞬間動作和延時動作。
瞬間動作基本等同于設定節點的屬性,延時動作會執行一段時間,不需要清除這兩種動作,一旦動作完成,就會從節點上清除并釋放所占記憶體。
封裝CCSpriteBatchNode的使用方法

BatchAnimatitonSprite
重複動作
可以使一個動作或一系列的動作不停地重複無限循環,除非“外力”使其停止。
執行個體
Sprite循環不停地旋轉
流暢動畫
CCEaseAction類能在一段時間内動作的流暢執行,使得更強大。而非簡單地執行簡單動畫效果。
在實際運動過程中,勻速運動在啟動和結束時往往會有一定的加速和減速的效果,這樣更加的真實。
cocoos2d-x引擎提供了相關的API,免除了我們編寫相關的算法實作的煩惱,實作起來相當的友善。
實作該方法的是CCActionEase中CCEaseRateAction系列,大體分成三類:
In:開始時候的加速度
Out:結束時候的加速度
InOut:開始結束時候的加速度
(以下圖檔來源其他博文,具體位址忘記了,以後再加上)
1.指數緩沖
EaseExponentialIn
EaseExponentialOut
EaseExponentialInOut
2.賽因緩沖
EaseSineIn
EaseSineOut
EaseSineInOut
3.彈性緩沖
EaseElasticIn
EaseElasticOut
EaseElasticInOut
4.跳躍緩沖
EaseBounceIn
EaseBounceOut
EaseBounceInOut
5.回震緩沖
EaseBackIn
EaseBackOut
EaseBackInOut
可見,Sprite開始緩慢移動——加速——緩慢停止。
動作序列
通常情況下,Action動作執行添加多個動作時,它們會在同一時間運作,如上面的動作。但有時我們需要讓動作一個接着一個運作。CCSequence将實作該功能。
Sprite跑動到指定位置後,下個動作就是彈跳回起始位置
瞬間動作
有時在一串動作中,需要改變Sprite的屬性,然後在繼續執行下個動作。瞬間動作将實作該功能,通常情況下依賴與CCCallFunc動作。
repeatForever方法
執行完ScaleTo後執行SkewBy
完整源碼

SpriteActionTest.h

SpriteActionTest.cpp