天天看點

Learning Cocos2d-x for WP8(8)——動作Action

遊戲很大程度上是由動作畫面支撐起來的。

動作分為兩大類:瞬間動作和延時動作。

瞬間動作基本等同于設定節點的屬性,延時動作會執行一段時間,不需要清除這兩種動作,一旦動作完成,就會從節點上清除并釋放所占記憶體。

封裝CCSpriteBatchNode的使用方法

Learning Cocos2d-x for WP8(8)——動作Action
Learning Cocos2d-x for WP8(8)——動作Action

BatchAnimatitonSprite

重複動作

可以使一個動作或一系列的動作不停地重複無限循環,除非“外力”使其停止。

執行個體

Sprite循環不停地旋轉

Learning Cocos2d-x for WP8(8)——動作Action

流暢動畫

CCEaseAction類能在一段時間内動作的流暢執行,使得更強大。而非簡單地執行簡單動畫效果。

在實際運動過程中,勻速運動在啟動和結束時往往會有一定的加速和減速的效果,這樣更加的真實。

cocoos2d-x引擎提供了相關的API,免除了我們編寫相關的算法實作的煩惱,實作起來相當的友善。

實作該方法的是CCActionEase中CCEaseRateAction系列,大體分成三類:

In:開始時候的加速度

Out:結束時候的加速度

InOut:開始結束時候的加速度

(以下圖檔來源其他博文,具體位址忘記了,以後再加上)

1.指數緩沖

Learning Cocos2d-x for WP8(8)——動作Action

EaseExponentialIn

EaseExponentialOut

EaseExponentialInOut

2.賽因緩沖

Learning Cocos2d-x for WP8(8)——動作Action

EaseSineIn

EaseSineOut

EaseSineInOut

3.彈性緩沖

Learning Cocos2d-x for WP8(8)——動作Action

EaseElasticIn

EaseElasticOut

EaseElasticInOut

4.跳躍緩沖

Learning Cocos2d-x for WP8(8)——動作Action

EaseBounceIn

EaseBounceOut

EaseBounceInOut

5.回震緩沖

Learning Cocos2d-x for WP8(8)——動作Action

EaseBackIn

EaseBackOut

EaseBackInOut

可見,Sprite開始緩慢移動——加速——緩慢停止。

Learning Cocos2d-x for WP8(8)——動作Action
Learning Cocos2d-x for WP8(8)——動作Action

動作序列

通常情況下,Action動作執行添加多個動作時,它們會在同一時間運作,如上面的動作。但有時我們需要讓動作一個接着一個運作。CCSequence将實作該功能。

Sprite跑動到指定位置後,下個動作就是彈跳回起始位置

Learning Cocos2d-x for WP8(8)——動作Action
Learning Cocos2d-x for WP8(8)——動作Action

瞬間動作

有時在一串動作中,需要改變Sprite的屬性,然後在繼續執行下個動作。瞬間動作将實作該功能,通常情況下依賴與CCCallFunc動作。

repeatForever方法

執行完ScaleTo後執行SkewBy

Learning Cocos2d-x for WP8(8)——動作Action

完整源碼

Learning Cocos2d-x for WP8(8)——動作Action
Learning Cocos2d-x for WP8(8)——動作Action

SpriteActionTest.h

Learning Cocos2d-x for WP8(8)——動作Action
Learning Cocos2d-x for WP8(8)——動作Action

SpriteActionTest.cpp

Learning Cocos2d-x for WP8(8)——動作Action

繼續閱讀