2016-02-29 43 views
0

我正在使用SKAction序列在某些情況下延遲我節點的產卵。當laneFire是真的時,我不希望延遲發生。但如果還有其他問題,我希望延遲發生。所以我創建了一個名爲spawnAction的SKAction。在spawnAction裏面,我添加了這個孩子。然後我把spawnAction放入我的序列中。爲了在我的節點產生之前創建一個延遲,我把它放在我的序列中的waitAction之後。但是,我的節點的產卵不會延遲。它在屏幕上產生,並在執行moveAction之前等待1.5秒。SKAction序列不會延遲我的節點的產生

另外,鼠標!是SKSpriteNode()和movingObjects也是一個SKSpriteNode()

var action = SKAction() 
    let spawnAction = SKAction(movingObjects.addChild(mouse!)) 
    let actionDone = SKAction.removeFromParent() 

    if laneFire == true 
    { 
     action = SKAction.moveToY(self.size.height, duration: duration) 

    } 
    else 
    { 

     let waitAction = SKAction.waitForDuration(1.5) 
     let moveAction = SKAction.moveToY(self.size.height, duration: duration) 
     action = SKAction.sequence([waitAction, spawnAction, moveAction]) 

    }// end of laneFire if statement 

    mouse!.runAction(SKAction.sequence([action, actionDone])) 

    mouseCount++ 

回答

0

下面一行是可疑的(我不知道爲什麼編譯器會接受嗎)

讓spawnAction = SKAction(movingObjects.addChild (mouse!))

如果鼠標未初始隱藏,則會立即將其添加到移動對象節點並出現在執行操作之前。

如果你把你的鼠標點最初是隱藏的,你可以把spawnAction的取消隱藏():

mouse!.hidden = true 
movingObjects.addChild(mouse!) 
let spawnAction = SKAction.unHide() 
... 
+0

我試過,但得到了一個錯誤。線程1:EXC_BAD_INSTRUCTION(代碼= EXC_I386_INVOP,子代碼= 0x0)。我在代碼行中得到了這個錯誤:mouse!.hidden = true。它說構建成功,但它停止並給我這個錯誤。 –