【发布时间】: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