Cocos2d x動作學習筆記

2021-07-04 03:19:56 字數 1698 閱讀 1420

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...