直接看繼承關係圖:函數
多數用到的是限時動做,其意思就是有限時間內完成的動做,它又分爲瞬時動做和延時動做。this
瞬時動做以下:.net
延時動多就多了,但絕大多數又分爲兩種即to和by.to是至,by增量。看個例子:對象
CCActionInterval* actionTo = CCScaleTo::create(2.0f, 0.5f);
CCActionInterval* actionBy = CCScaleBy::create(2.0f, 0.5f);繼承
一個精靈執行了actionTo後的大小是原來的一半。執行actionBy後就是原來的1.5倍。資源
比較麻煩的就是如下幾種了:get
CCSequence,即動做會順序執行,一個執行完了接着執行下一個。it
CCSpawn,動做融合,即其參數例表裏的動做同時執行。
CCRepeatForever,動做永遠執重複執行。
這三個能夠組合其餘動做,它們之間也可能相互組合。
再有就是能夠調用函數的動做了,以下:
一個動做序列,其中順序執行其中的六個動做,前兩個就是傳說中的瞬時動做。後三個就是能調動函數的。調用的函數均無返回值。
其參數都有一個target,一個選擇器.target是指你要調用哪一個對象的方法,這裏就是this。假如你有我的類的對象小明,你想調用他的方法,這裏this就要
換成小明的指針了。選擇器裏面的函數名就是你要調用的方法了,在cocos2d中前面不須要指出類名的,但cocos2d-x中是要的,主要緣由應該是objc和C++的不一樣。
而且只是函數名,不要帶();
CCCallFunc:調用的方法是不帶參數的。
CCCallFuncN:調用的方法是須要一個NODE的指針做爲參數,其傳過來的就是執行這個動做的NODE,如A->runAction,就是指A,並非其參數target.
CCCallFuncND:調用的方法是須要一個NODE的指針和一個數據的指針做爲參數;可能把數據傳過去。
CCCallFuncNO:和上面的CCCallFuncND差很少,不過傳的是一個CCObjet*.
還有一個狀況,以下:
CCActionInterval* act1 = CCRotateTo::create(1, 90);
CCActionInterval* act2 = CCTintTo::create(2, 255, 0, 255);
m_tamara->runAction(act1);
m_kathia->runAction(act2);
當執行這四句代碼後,兩個動做會同時執行。相似CCSpawn。
action的具體實現沒有具體研究,不過我以爲你能夠把它當成一個線程來用。好比,你能夠用CCCallFunc預加載一些資源等,這樣程序能夠一直執行,不用
等待。相似執行一次的schedule。不少用到線程的時候用這兩個替代未常不可。
好了,就想到這些東西,再想到再補充吧。
第一次寫,不足之處還望指正。
轉載請註明出處。