Cocoa學習筆記 Cocos2d 各種動作介紹 (上)

Cocoa學習筆記 Cocos2d 各種作是本文呀介紹的內容,本篇文章分爲上下兩篇,請友們不要忘了下篇內容,請關注。我們來看內容。

通常調用某個動作的方法:

  1. // 創建動作    
  2.   id actionTo = [CCMoveTo actionWithDuration: 2 position:ccp(s.width-40, s.height-40)];       
  3. // 使用動作。(說明:tamara 是一個 CCSprite。)     
  4. [tamara runAction: actionTo];  

瞬時動作

顧名思義。瞬時動作就是不需要時間,馬上就完成的動作。瞬時動作的共同基類是 InstantAction。

放置 – Place

效果類似於 node.Position = ccp(x, y)。之所以作爲一個動作來實現是爲了可以與其他動作形成一個連續動作。

示例:

  1.  (void) OnPlaceMenue:(id) sender {    
  2.  CGSize s = [[CCDirector sharedDirector] winSize];    
  3.  CGPoint p = ccp(CCRANDOM_0_1() * s.width, CCRANDOM_0_1() * s.height);    
  4.  [sprite runAction:[CCPlace actionWithPosition:p]];    
  5. }  

 隱藏 – Hide

效果類似於 [node setVisible:NO].

示例:

  1. (void) OnHideMenue:(id) sender {    
  2.  [sprite runAction:[CCHide action]];    
  3.  } 

顯示 – Show

效果類似於 [node setVisible:YES].

示例:

  1. (void) OnShowMenue:(id) sender {    
  2.  [sprite runAction:[CCShow action]];    
  3.  }  

可見切換 – ToggleVisibility 代碼如下:

  1. (void) OnToggleMenue:(id) sender {    
  2. [sprite runAction:[CCToggleVisibility action]];    
  3.  }  

延時動作

延時動作就是動作的完成需要一定時間。因此,actionWithDuration 是延時動作執行時的第一個參數,延時動作的共同基類是 CCIntervalAction。

函數的命名規則:

***To: 意味着運動到指定的位置。

***By:意味着運動到按照指定癿 x、y 增量的位置。(x、y 可以是負值)

移動到 – CCMoveTo

移動– CCMoveBy

跳躍到 – CCJumpTo

設置終點位置和跳躍癿高度和次數。

跳躍 – CCJumpBy

設置終點位置和跳躍癿高度和次數。

貝塞爾 – CCBezierBy

支持 3 次貝塞爾曲線:P0-起點,P1-起點切線方向,P2-終點切線方向,P3-終點。

首先設置定 Bezier 參數,然後執行。

放大到 – CCScaleTo

設置放大倍數,是浮點型。

放大 – CCScaleBy

旋轉到 – CCRotateTo

旋轉 – CCRotateBy

閃爍 – CCBlink

設定閃爍次數

色調變化到 – CCTintTo

色調變換 – CCTintBy

變暗到 – CCFadeTo

由無變亮 – CCFadeIn

由亮變無 – CCFadeOut

組合動作

按照一定的次序將上述基本動作組合起來,形成連貫的一套組合動作。組合動作包括以 下幾類:

序列 – CCSequence

主要作用就是線序排列若干個動作,然後按先後次序逐個執行。

  1.  (void) OnSequence:(id) sender {    
  2.  CGSize s = [[CCDirector sharedDirector] winSize];     
  3.  CGPoint p = ccp(s.width/2, 50);    
  4. // 創建5個動作    
  5.  id ac0 = [sprite runAction:[CCPlace actionWithPosition:p]];    
  6.  id ac1 = [CCMoveTo actionWithDuration:2 position:ccp(s.width - 50, s.height - 50)];    
  7. id ac2 = [CCJumpTo actionWithDuration:2 position:ccp(150, 50) height:30 jumps:5];    
  8.  id ac3 = [CCBlink actionWithDuration:2 blinks:3];    
  9. id ac4 = [CCTintBy actionWithDuration:0.5 red:0 green:255 blue:255];    
  10.  //將 5 個動作組合爲一個序列,注意不要忘了用 nil 結尾。    
  11. [sprite runAction:[CCSequence actions:ac0, ac1, ac2, ac3, ac4, ac0, nil]];    
  12. }  

同步 – Spawn Spawn

作用就是同時並列執行若干個動作,但要求動作都必須是可以同時執行的。比如:移動式翻轉、變色、變大小等。

需要特別注意的是,同步執行最後的完成時間由基本動作中用時最大者決定。

  1. (void) OnSpawn:(id) sender {    
  2.  CGSize s = [[CCDirector sharedDirector] winSize];    
  3.  CGPoint p = ccp(s.width/2, 50);    
  4.  sprite.rotation = 0;     
  5. [sprite setPosition:p];    
  6. // 創建 4 個需要並行的動作,確保動作用時可組合。2 – 2 - (1+1)    
  7.  id ac1 = [CCMoveTo actionWithDuration:2 position:ccp(s.width - 50, s.height - 50)];    
  8.  id ac2 = [CCRotateTo actionWithDuration:2 angle:180];     
  9.  id ac3 = [CCScaleTo actionWithDuration:1 scale:4];     
  10.  id ac4 = [CCScaleBy actionWithDuration:1 scale:0.5];    
  11.  id seq = [CCSequence actions:ac3, ac4, nil];    
  12. // 同步動作和組合動作以形成一個連續的新動作。    
  13.  [sprite runAction:[CCSpawn actions:ac1, ac2, seq, nil]];    
  14. } 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章