action類如其名,它可以改變node物件的屬性,action物件是隨著時間改變node的屬性。任何乙個以node為基類的物件都有可執行的動作物件。例如,你可以在乙個時間段內將sprite精靈從乙個位置移動到另乙個位置。
每個動作都有by和to兩個狀態。為什麼呢?因為它們所執行的結果是不同的。by相當於這個節點是相對的。to是絕對的,意思是它並不考慮到這個節點的當前狀態。
移動(move)
在規定的時間內移動node的位置。
auto mysprite = sprite::create("mysprite.png");
// move a sprite to a specific location over 2
seconds.
auto moveto = moveto::create(2, vec2(50, 0));
mysprite->runaction(moveto);
旋轉(rotate)
在2秒內順時針旋轉node。
auto mysprite = sprite::create("mysprite.png");
// rotates a node to the specific angle over 2 seconds
auto rotateto = rotateto::create(2.0f, 40.0f);
mysprite->runaction(rotateto);
縮放(scale)
在兩秒內將node放大10倍
淡入淡出
node淡入
fadein修改透明度的值(0~255之間)。與之相反的動作是「淡出」
色調(tint)
tint使節點的nodergb從當前值改變到使用者設定值。
動畫(animate)
通過animate可以很容易地實現精靈的幀動畫效果。只要簡單的每隔一段時間替換_display frame_即可。
減速(easing)
easing用乙個給定的加速度來使動畫更加順暢。需要記住的是,無論速度快慢,ease動作總是同時開始和結束。在遊戲中如果你想模擬一些物理特效,但又不想過度且麻煩地使用多個非常基本的動作,那麼此時ease動作將是模擬物理特效的乙個
sequence可以使一系列的動作物件按順序執行。這一系列物件可以是任何數量的動作物件、函式,甚至是另外乙個序列動作。函式?是的!cocos2d-x中有乙個callfunc物件,它允許你建立乙個function()函式並可以傳遞到sequence中執行。這就允許你在序列動作物件中新增自己的函式功能,而不是僅僅侷限於cocos2d-x中提供的動作物件。
spawn
spawn與sequence類似,不同的是使用spawn時所有動作是同時執行的。你可以有很多動作物件,甚至其他spawn物件。
reverse(逆序)
reverse的作用完全像它的名字一樣,例如執行一系列動作時,你完全可以呼叫reserve()函式使動作逆序執行。然而,這並不只是簡單的逆序執行,實際上還將原始的sequence和spawn的屬性也轉換為逆序。
using the spawn example above reversing is ******. 上面spawn中的例子使用逆序就會很簡單:
// reverse a sequence, spawn or action
mysprite->runaction(myspawn->reverse());
大部分action和sequence物件都是可逆的!
cocos2d x 跟隨動作
ccfollow 乙個節點跟隨另外乙個節點的動作。定義第乙個引數是要跟隨的節點,第二個引數是運動的邊界。如果沒有傳入邊界,則視為沒有邊界。bool helloworld init ccsprite spr ccsprite create icon.png spr setposition ccp 10...
我的Cocos2d x學習筆記(十六)動作
一 簡介 繼續引用高階開發教程 ccaction 作為乙個基類,其實質是乙個介面 即抽象類 由它派生的實現類 如運動和轉動等 才是我們實際使用的動作。ccaction 的絕大多數實現類都派生自ccfinitetimeaction,這個類定義了在有限時間內可以完成的動作。由ccfinitetimeac...
cocos2d x初探學習筆記(5) 動作管理
1.停止此動作,開始下乙個動作 其中在onenter 的最後一句話就是在 1.4s 後呼叫removethis 這個函式來進行把這一層刪掉,並且開始下一層,可以看到,這個 runaction 是這個層物件呼叫的。1.函式處理子精靈 如果不想對整個層操作,而是對層中的精靈操作呢?這 函式使用callf...