2016-02-29 26 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。它说构建成功,但它停止并给我这个错误。 –