2015-01-11 45 views
1

我想創建一個基本的產卵序列 - 必須創建塊,moveDownLeft,然後removeLeftmoveDownLeftremoveLeft以前使用self.addChild(block1)添加塊時可以正常工作,但是我需要在序列中有self.addchildrunBlock不能按順序工作?

,我可以看到這樣做的唯一方法是使用runBlock,我看着這個問題時,我使用了一個錯誤:Swift: SKAction.runBlock -> Missing argument for parameter 'completion' in call BUT WHY?

所以現在我離開了這一點:

block1.runAction(SKAction.sequence([SKAction.runBlock({ self.addChild(self.block1) }), moveDownLeft, removeLeft])) 

序列中沒有任何內容,因爲該塊不是首先創建的。這是爲什麼發生?

回答

1

您的代碼片段太短,但它看起來像一個典型的雞和雞蛋問題。

  • 節點只能運行的操作,一旦它已作爲孩子,從而成爲場景圖
  • 您的節點應該執行的操作,最終將自身添加到場景圖的一部分,但它不是在場景圖表尚未運行該動作

將該節點添加爲第一個子節點,然後運行該操作。如果您需要節點在一段時間內處於非活動狀態,則只需在整個持續時間內將其可見屬性設置爲NO即可。你也可以改變其他屬性,例如推遲創建物理體。