SKAction序列不会延迟我的节点的生成

时间:2016-02-29 16:03:41

标签: swift delay skaction

我正在使用SKAction序列来延迟在某些情况下产生节点。当laneFire为true时,我不希望延迟发生。但如果不是那么我希望延迟发生。所以我创建了一个名为spawnAction的SKAction。在spawnAction里面我添加了孩子。然后我将spawnAction放入我的序列中。我把它放在我的序列中的waitAction之后,以便在我的节点生成之前创建一个延迟。但是,我的节点的产生不会延迟。它在屏幕上产生并在执行moveAction之前等待1.5秒。

另外,鼠标!是一个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++

1 个答案:

答案 0 :(得分:0)

以下行是可疑的(我不确定编译器为什么会接受它)

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

如果鼠标最初未被隐藏,它将立即被添加到移动对象节点,并在执行操作之前出现。

如果你最初隐藏鼠标节点,你可以使spawnAction成为一个unHide():

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