16.精靈進階之節點命名

16.精靈進階之節點下篇

一般情況下,想要知道節點正在執行哪個動作,你一無所知;想要移除衆多動作中的一個,你卻只能刪除所有。你還在苦惱嗎?那麼給“動作命名”(named actions)消除以上所有的障礙。已命名的動作都使用一個獨一無二的關鍵字(key name)來標識自身。如此,你能夠移除、找到以及替換掉一個附着於節點之上已命名的動作。對先前代碼稍作改變,自然就是給動作添加一個key如下:

//注意這裏在通知spaceship執行runAction動作同時,也給動作命名了!
//這樣我們才能在之後的代碼中對該動作移除等等操作
let moveNodeRight = SKAction.moveByX(100.0,y:0.0,duration:1.0)
spaceship.runAction(moveNodeRight,withKey:"ignition")

下面是一些key-based方法 :

  • runAction:withKey: 執行動作同時給其命名。
  • actionForKey:通過key值來確認某個動作是否正在被執行。
  • removeActionForKey:通過key值來移除動作。

執行一組動作(sequence or group)

Sprite Kit框架提供了許多標準動作類型,用以改變場景中節點的屬性。但是隻有當你將動作“排列組合”起來才能發揮他們的作用。通過動作之間配合,我們能夠創建更爲複雜和生動的動畫,但是它仍然以單個動作存在並運行在一個節點上(很有意思)。現在是時候來學習sequence,grouprepeating這三類動作了。

  • sequence Action:動作隊列,包含一組子動作,執行順序從頭至尾,有條不亂,只有當前一個動作結束,緊跟着的動作馬上開始。想象人們排隊進場,一個個進入的場景,是不是有點感覺
  • group Action:動作組,也包含一組子動作,執行順序大家平等,都是從同一時間點開始執行。現象跑步比賽,一羣人都在同一個起跑線,發令槍一開,大家衝出去,當然有快有慢,這個是不可避免的。
  • repeating Action:只有一個子動作,執行順序當然就是週而復始。

具體如何操作,請見下文

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章