小滿(bill man)個人原創,歡迎轉載,轉載請註明地址,小滿(bill man)的專欄地址http://blog.csdn.net/bill_man
如何讓場景中的所有都受一個動作特效的影響呢?可以使用樹形結構,在場景中建立一個CCNode,然後將場景中會受特效影響的對象都掛在這個特效上就可以了,如下代碼就做到了這點
可以看到,所有的對象都掛在了node上面,另外還要注意當特效動作結束後,將場景恢復正常,可以用掛schedule的方式,實時監測,如下
如代碼中一樣,如果動作結束,那就恢復相應的狀態,將setGrid置空
Test中使用的特效如下
首先,使用ccg(x,y)建grid,一個Grid 屬性就好像一個矩陣,是一個網絡的線,組成一系列的方塊和矩陣。 一個(16,12)大小的grid將會運行的非常快,但是並不會看起來非常的好。(32,24)的將會看起來非常棒,但是在iphone1代中,運行起來不會太快 。任何一個屏幕的Frame都會改稱成一個Texture(FBO),這個紋理會轉換城一個頂點array,這個頂點座標array是通過grid的效果轉換來的。最後,這個頂點數組被顯示到屏幕上。
CCShaky3D::actionWithRange(5, true, ccg(15,10), t);//第一個參數是扭曲範圍,第二個參數是是否扭曲z軸,分格的大小,第四個參數是間隔時間
CCWaves3D::actionWithWaves(5, 40, ccg(20,10), t);//波浪式,5是波浪數,40是振幅
CCFlipX3D::actionWithDuration(t);//x軸翻轉
CCFlipY3D::actionWithDuration(t);//y軸翻轉
CCLens3D::actionWithPosition(CCPointMake(size.width/2,size.height/2), 240, ccg(15,10), t); //放大鏡,參數是中心點,半徑,格,時間
CCRipple3D::actionWithPosition(CCPointMake(size.width/2,size.height/2), 240, 4, 160, ccg(32,24), t);//水波 參數是中心點,半徑,波浪數,振幅,格,時間
CCLiquid::actionWithWaves(4, 20, ccg(16,12), t);//流體效果,波浪數,振幅,格,時間
CCWaves::actionWithWaves(4, 20, true, true, ccg(16,12), t);//扭曲波浪,波浪數,振幅,水平sin,豎直sin,格,時間
CCTwirl::actionWithPosition(CCPointMake(size.width/2, size.height/2), 1, 2.5f, ccg(12,8), t); //扭曲,中心點,扭曲數,振幅,格,時間
CCShakyTiles3D::actionWithRange(5, true, ccg(16,12), t) ;//水波,範圍,是否z軸,格,時間
CCShatteredTiles3D::actionWithRange(5, true, ccg(16,12), t);//破碎歪曲,範圍,是否z軸,格,時間
CCShuffleTiles::actionWithSeed(25, ccg(16,12), t);//打散
CCFadeOutTRTiles::actionWithSize(ccg(16,12), t);//頂右淡出
CCFadeOutBLTiles::actionWithSize(ccg(16,12), t);//底左淡出
CCFadeOutUpTiles::actionWithSize(ccg(16,12), t);//向上淡出
CCFadeOutDownTiles::actionWithSize(ccg(16,12), t);//向下淡出
CCTurnOffTiles::actionWithSeed(25, ccg(48,32) , t);//方塊消失
CCWavesTiles3D::actionWithWaves(4, 120, ccg(15,10), t);//方塊波浪
CCJumpTiles3D::actionWithJumps(2, 30, ccg(15,10), t);//跳躍方塊
CCSplitRows::actionWithRows(9, t);//切開行
CCSplitCols::actionWithCols(9, t);//切開列
CCPageTurn3D::actionWithSize(ccg(15,10), t);//翻頁