cocos2dx提供了豐富的動作實現的類。其中最主要的兩個類是
ccaction和
ccactionmanager,ccaction是所有動作的基類,類中有幾個很重要的方法:
virtualvoid startwithtarget(ccnode *ptarget); //設定動作的目標
virtual類ccactionmanager管理所有的動作;主要方法有:void stop(void); //停止動作
virtual
void step(float dt); //心跳,每一幀都會掉到,後面會介紹是怎麼呼叫這個方法的virtual
void update(float time); //更新動作,由step()呼叫
void addaction(ccaction *paction, ccnode *ptarget, bool paused);
這個方法會把乙個ccaction物件交給ccactionmanager管理,裡面具體是用乙個hashmap存起來的,
而ccactionmanager在ccdirector中會被當做乙個singleton使用,
每一幀都會去update;// ccdirector action manager
m_pactionmanager = new
ccactionmanager();
m_pscheduler->scheduleupdatefortarget(m_pactionmanager, kccprioritysystem, false);
簡單來做,就是ccdirector::drawscene() -> ccschedule::update() -> ccactionmanager::update() ->
ccaction::step() -> ccaction::update();
下面介紹ccaction的分類架構:
(1)ccfinitetimeaction : publicccaction: 表示這是乙個線性的動畫,新加了setduration()//間隔和reverse()方法;
(2)ccactioninterval : public ccfinitetimeaction:這是乙個延時動畫,主要重寫了step()方法;
(3)ccactioninstant : public ccfinitetimeaction : 這是乙個即時動畫,主要重寫tep()和update()方法;
(4)ccshow........一系列具體動作實現類,主要重寫update後,在這個方法中進行具體操作。
cocos2d x 跟隨動作
ccfollow 乙個節點跟隨另外乙個節點的動作。定義第乙個引數是要跟隨的節點,第二個引數是運動的邊界。如果沒有傳入邊界,則視為沒有邊界。bool helloworld init ccsprite spr ccsprite create icon.png spr setposition ccp 10...
Cocos2d x動作學習筆記
action類如其名,它可以改變node物件的屬性,action物件是隨著時間改變node的屬性。任何乙個以node為基類的物件都有可執行的動作物件。例如,你可以在乙個時間段內將sprite精靈從乙個位置移動到另乙個位置。每個動作都有by和to兩個狀態。為什麼呢?因為它們所執行的結果是不同的。by相...
Cocos2dx 《基礎》 特殊的動作
物件做變速運動 a.easesinein 物體先慢後快 b.easesineout 物體先快後慢 c.easesineinout 物體執行sine運動 auto spriteframe spriteframe create mp.png rect 0,81.25 2,81.25,81.25 auto...