如何在Swift中使用SKAction上的perform方法

时间:2017-12-21 08:46:43

标签: ios swift skaction performselector

我尝试使用perform(_:onTarget :)作为SKAction序列的一部分来调用函数。

我试过了:

let action4 = SKAction.run(self.blinkLightByOrder)

当我使用SKAction.run(block :() - > Void)时:

func blinkLightByOrder(onSprite: SKSpriteNode)

它有效,但我需要发送对象,因为此方法要求SKSpriteNode:

{{1}}

但我一直收到错误,并且无法理解如何实施此执行操作。 感谢

2 个答案:

答案 0 :(得分:0)

如果我理解你的问题,我认为你只是想找到这样的函数:

blinkLightByOrder(onSprite: currentLight)

func blinkLightByOrder(onSprite: SKSpriteNode){
    onSprite.run(action4)
}

它对我有用,只是一个简单的通话功能

答案 1 :(得分:0)

Orkhan Alikhanov在评论中发表的答案

SKAction.run { self.blinkLightByOrder(onSprite: mySprite) }

工作得很好!

现在我改变了这样的方法:

       currentLight.run(
        SKAction.run {
            SKAction.sequence([
                SKAction.fadeIn(withDuration: TimeInterval(0.2)),
                SKAction.wait(forDuration: TimeInterval(0.4)),
                SKAction.fadeOut(withDuration: TimeInterval(0.1)),
            SKAction.run{ self.blinkLightByOrder() }]
            )
    })

它的效果与预期的一样! 非常感谢:)