【问题标题】:How to use perform method on SKAction in Swift如何在 Swift 中的 SKAction 上使用 perform 方法
【发布时间】:2018-06-03 21:46:56
【问题描述】:

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

我试过了:

let action1 = SKAction.fadeIn(withDuration: TimeInterval(0.2))
let action2 = SKAction.wait(forDuration: TimeInterval(0.4))
let action3 = SKAction.fadeOut(withDuration: TimeInterval(0.1))
let action4 = SKAction.perform(self.blinkLightByOrder, onTarget: UFOSprite._ufoBase)
let action5 = SKAction.sequence([action1, action2, action3, action4])

currentLight.run(action5)

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

let action4 = SKAction.run(self.blinkLightByOrder)

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

func blinkLightByOrder(onSprite: SKSpriteNode)

但我不断收到错误,并且无法理解如何实现此执行操作。 谢谢

【问题讨论】:

  • 您遇到的具体错误是什么?
  • 错误是:无法将类型“()”的值转换为预期的参数类型“选择器”。
  • let action4 = SKAction.run(self.blinkLightByOrder) 作为 run(block:) 工作,但我需要将对象(SKSpriteNode)发送到此方法。
  • 试试SKAction.run { self.blinkLightByOrder(onSprite: mySprite) }
  • 感谢您的回答 Orkhan Alikhanov,效果很好!你能把它写成答案,这样我就可以标记它了吗?我相信它可以帮助更多的开发者:)

标签: ios swift skaction performselector


【解决方案1】:

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

blinkLightByOrder(onSprite: currentLight)

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

它对我有用,只是一个简单的调用函数

【讨论】:

    【解决方案2】:

    Orkhan Alikhanov 在 cmets 中发布的答案

    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() }]
                )
        })
    

    它按预期工作! 非常感谢:)

    【讨论】:

      猜你喜欢
      • 2014-07-30
      • 2021-10-27
      • 1970-01-01
      • 2016-04-08
      • 2014-09-07
      • 1970-01-01
      • 2015-06-20
      • 1970-01-01
      • 2023-04-04
      相关资源
      最近更新 更多