一、簡介:
繼續引用高階開發教程:
ccaction 作為乙個基類,其實質是乙個介面(即抽象類),由它派生的實現類(如運動和轉動等)才是我們實際使用的動作。ccaction 的絕大多數實現類都派生自ccfinitetimeaction,這個類定義了在有限時間內可以完成的動作。由ccfinitetimeaction 派生出的兩個主要類分別是瞬時動作(ccactioninstant)和持續性動作(ccactioninterval)。
動作作用於ccnode,任何乙個動作都需要由ccnode物件執行。
乙個ccaction只能使用一次,對於需要反覆使用的動作物件,可以通過copy方法複製使用。
ccfinitetimeaction定義了reverse方法,通過這個方法可以獲得乙個與原動作相反的動作。
設定屬性為常量的動作不存在逆動作,設定屬性為相對值的動作存在逆動作。
二、瞬時動作
瞬時動作指立刻完成的動作,是ccfinitetimeaction 中持續時間為0的特例。
瞬時動作在下一幀會立刻執行並完成,為了方便與其他動作類組合為複雜動作。
1、ccplace
該動作作用於將節點放置到某個指定位置,其作用與修改節點的position屬性相同。
例項:
ccplace* place = ccplace::create(ccp(100, 100));
ccsprite* spr = ccsprite::create("p_2_01.png");
spr->setposition(ccp(240,160));
spr->runaction(place);
addchild(spr);
2、ccflipx和ccflipy這兩個動作分別用於將精靈沿x和y軸反向顯示,其作用與設定精靈的flipx和flipy屬性相同。
3、ccshow和cchide
這兩個動作分別用於顯示和隱藏節點,其作用與設定節點的visible屬性的作用一樣。
4、cccallfunc
cccallfunc系列動作包括:cccallfunc、cccallfuncn、cccallfun***、cccallfunco。
用來在動作中進行方法呼叫。
cccallfunc:呼叫的方法不包含引數,callfunc_selector。
cccallfuncn:包含乙個ccnode* 型別的引數,callfuncn_selector。
cccallfun***:包含乙個ccnode*型別的引數,和乙個void*引數(自定義型別),callfun***_selector。
cccallfunco:包含乙個ccobject*型別的引數,callfunco_selector。
二、持續性動作
持續性動作是在持續一段時間裡逐漸完成的動作。
每一種持續性動作通常存在兩個不同的變種動作,to字尾的動作描述了節點屬性的絕對變化,by字尾的動作描述了屬性值的相對變化。
持續性動作根據效果可以分為4類:位置變化動作、屬性變化動作、視覺特效動作、控制動作。
(一)位置變化動作(3種)
1、ccmoveto和ccmoveby:
用於節點做直線運動。設定了動作時間和終點位置後,節點就會在規定時間內,從當前位置直線移動到設定的終點位置。
2、ccjumpto和ccjumpby
使節點以一定的軌跡跳躍到指定位置。
3、ccbezierto和ccbezierby
使節點進行曲線運動,運動的軌跡由貝塞爾曲線描述。
(二)屬性變化動作
特點是通過屬性值的逐漸變化實現動畫效果。
1、ccscaleto和ccscaleby:
產生縮放效果。
2、ccrotateto和ccrotateby:
產生旋轉效果。
3、ccfadein和ccfadeout:
產生淡入淡出效果。
4、ccfadeto:
一段時間內透明度的變化效果。
5、cctintto和cctintby:
設定色調製化。
(三)視覺特效動作
1、ccblink:
使目標節點閃爍。
2、ccanimation:
(四)控制動作
用於對一些動作進行精細控制。
ccdelaytime:將動作延時一定時間。
ccrepeat:把現有動作重複一定次數。
ccrepeatforever:使乙個動作不斷重複。
三、復合動作
作為容器,把許多動作組合成乙個複雜的動作。
1、ccrepeat和ccrepeatforver:
ccrepeat:把現有動作重複一定次數。
ccrepeatforever:使乙個動作不斷重複。
2、ccspawn:使一批動作同時執行。
3、ccsequence:
讓動作順序執行。
3、ccdelaytime:
占用一段時間,使動作延時。
四、變速動作
它可以把任何動作按照改變後的速度執行。
1、ccspeed:
用於線性地改變某個動作的速度。
2、ccactionease:
自定義速度變化。
3、ccfollow
跟隨。
Cocos2d x學習筆記1
1.建立新的cocos2d x 3.0 專案 在命令列中輸入 cocos new helloworld 專案名稱 p com.ss.pku 包名字 l cpp 專案型別 d d cocos workspace 專案存放路徑 2.資料夾分析 resource 資料夾 存放資源檔案 include和so...
Cocos2d x學習筆記(7)
1 動作基本概念 ccactiong是動作類的基類,動作作用於ccnode,因此,任何乙個動作都需要ccnode物件來執行。ccaction作為乙個基類,其實質是乙個介面 抽象類 由它派生的實現類才是實際使用的動作。ccaction的絕大多數實現類都派生自ccfinitetimeaction,這個類...
Cocos2d x動作學習筆記
action類如其名,它可以改變node物件的屬性,action物件是隨著時間改變node的屬性。任何乙個以node為基類的物件都有可執行的動作物件。例如,你可以在乙個時間段內將sprite精靈從乙個位置移動到另乙個位置。每個動作都有by和to兩個狀態。為什麼呢?因為它們所執行的結果是不同的。by相...